 
        
        
          Добавил:
          
          
        
        
    
            Studfiles2
            
            
            
            
            
            Опубликованный материал нарушает ваши авторские права? Сообщите нам.
          
          Вуз:
          Предмет:
          Файл:Тестовые примеры / ch11 / socket / sock_datagram_srv
.C#include "sock.h"
const char* MSG2 = "Hello MSG2";
const char* MSG4 = "Hello MSG4";
main( int argc, char* argv[]) 
{
   char buf[80], socknm[80];
   if (argc < 2) {
      cerr << "usage: " << argv[0] << " <sockname|port> [<remote-host>]\n";
      return 1;
   }
   int  port = -1, rc;
   /* Check if port number or socket name is specified */
   (void)sscanf( argv[1],"%d",&port);
   /* Create a datagram socket */
   sock sp( port==-1 ? AF_UNIX : AF_INET, SOCK_DGRAM );
   if (!sp.good()) return 1;
   /* assign a name to the socket */
   if (sp.bind(port==-1 ? argv[1] : argv[2],port) < 0) return 2;
   /* read MSG1 from client */
   if ((rc=sp.readfrom( buf, sizeof buf, 0, socknm, &port, -1)) < 0) return 1;
   cerr << "server: recvfrom from '" << socknm << "' msg: " << buf << endl;
    /* write MSG2 to client */
   if ((rc= sp.writeto( MSG2, strlen(MSG2)+1, 0, socknm, port, -1)) < 0) return 2;
   /* establish a default client address */
   if ((rc = sp.connect(socknm, port)) < 0) return 3;
   /* read MSG3 from client */
   if ((rc = sp.read(buf, sizeof buf, 0)) < 0) return 4;
   cerr << "server: receive msg: '" << buf << "'\n";
   /* write MSG4 to client */
   if (write(sp.fd(),MSG4,strlen(MSG4)+1)<0) return 5;
}
          Соседние файлы в папке socket
          
      
    
    
    
          