tcpdtd.cpp
来自「tcp udp 服务器客户端样本 来自commer的tcpip网络技术一书的例」· C++ 代码 · 共 67 行
CPP
67 行
/* TCPdtd.cpp - main, TCPdaytimed */#include <stdlib.h>#include <winsock.h>#include <time.h>void errexit(const char *, ...);void TCPdaytimed(SOCKET);SOCKET passiveTCP(const char *, int);#define QLEN 5#define WSVERS MAKEWORD(2, 0)/*------------------------------------------------------------------------ * main - Iterative TCP server for DAYTIME service *------------------------------------------------------------------------ */voidmain(int argc, char *argv[]){ struct sockaddr_in fsin; /* the from address of a client */ char *service = "daytime"; /* service name or port number */ SOCKET msock, ssock; /* master & slave sockets */ int alen; /* from-address length */ WSADATA wsadata; switch (argc) { case 1: break; case 2: service = argv[1]; break; default: errexit("usage: TCPdaytimed [port]\n"); } if (WSAStartup(WSVERS, &wsadata) != 0) errexit("WSAStartup failed\n"); msock = passiveTCP(service, QLEN); while (1) { alen = sizeof(struct sockaddr); ssock = accept(msock, (struct sockaddr *)&fsin, &alen); if (ssock == INVALID_SOCKET) errexit("accept failed: error number %d\n", GetLastError()); TCPdaytimed(ssock); (void) closesocket(ssock); }}/*------------------------------------------------------------------------ * TCPdaytimed - do TCP DAYTIME protocol *------------------------------------------------------------------------ */voidTCPdaytimed(SOCKET fd){ char *pts; /* pointer to time string */ time_t now; /* current time */ (void) time(&now); pts = ctime(&now); (void) send(fd, pts, strlen(pts), 0);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?