home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ool_main.zip / ool / samples / sample16 / server.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1997-07-21  |  1.6 KB  |  50 lines

  1. #include <fstream.h>
  2. #include <xheaders.h>
  3. #include XSocket_i
  4.  
  5. void main( int argc, char** argv )
  6. {
  7.         if( argc < 2 )
  8.         {
  9.                 cout << "Usage: server <port number>" << endl;
  10.                 cout << "e.g.: server 1000" << endl;
  11.         }
  12.         else
  13.         {
  14.                 XSocket*       pSocket;
  15.                 XServerSocket* pServerSocket;
  16.  
  17.                 try
  18.                 {
  19.                         XString message;
  20.                         message.GetBuffer( 40 );
  21.  
  22.                         pServerSocket = new XServerSocket();
  23.                         pServerSocket->Open();
  24.                         pServerSocket->SetInAddress( (ULONG)INADDR_ANY );
  25.                         pServerSocket->SetInPort( atoi( argv[1] ) );
  26.                         pServerSocket->Bind();
  27.                         pServerSocket->Listen();
  28.                         cout << "Socket setup done. Waiting for connection..." << endl;
  29.  
  30.                         pSocket = pServerSocket->Accept();
  31.                         cout << "Client connected. Reading data..." << endl;
  32.  
  33.                         pSocket->Read( message, 39 );
  34.                         cout << "Received data is: " << message << endl;
  35.  
  36.                         cout << "Sending data back...";
  37.                         XString s = "Test data received!";
  38.                         pSocket->Write( s );
  39.                         cout << "done." << endl;
  40.  
  41.                         delete pServerSocket;
  42.                 }
  43.                 catch( XException* x )
  44.                 {
  45.                         x->PrintError();
  46.                 }
  47.         }
  48. }
  49.  
  50.