Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Тестовые примеры / ch11 / socket / sock_msg_cls
.C#include "sock.h"
#define QUIT_CMD 2
int main( int argc, char* argv[])
{
if (argc < 2) {
cerr << "usage: " << argv[0] << " <sockname|port> [<host>]\n";
return 1;
}
int port=-1, rc;
/* check if port number of socket name is spceified */
(void)sscanf(argv[1],"%d",&port);
/* 'host' may be a socket name or a host name */
char buf[80], *host= (port==-1) ? argv[1] : argv[2], socknm[80];
/* create a client socket */
sock sp( port!=-1 ? AF_INET : AF_UNIX, SOCK_STREAM );
if (!sp.good()) return 1;
/* connect to a server socket */
if (sp.connect(host,port) < 0) return 8;
/* Send cmds 0 -> 2 to server */
for (int cmd=0; cmd < 3; cmd++)
{
/* compose a command to server */
sprintf(buf,"%d",cmd);
if (sp.write(buf,strlen(buf)+1) < 0) return 9;
/* exit the loop if QUIT_CMD */
if (cmd==QUIT_CMD) break;
/* read reply from server */
if (sp.read(buf,sizeof buf) < 0) return 10;
cerr << "client: recv '" << buf << "'\n";
}
sp.shutdown();
return 0;
}
Соседние файлы в папке socket