文档介绍:网络编程第二讲(1) ——简单的 TCP 客户端郑秋华 zheng_qiuhua@ 大纲?简单的 TCP 客户端?流程?例程?程序讲解简单的 TCP 客户端——例程( SimpleTcpClient) ?程序功能,连接服务器,获取服务器返回的时间并显示。?执行方式: ? SimpleTcpClient +IP 地址+端口号程序分析—— Step 1 //装载 Socket 库 WSADATA wsaData; WSAStartup (0x101, &wsaData); WSAStartup ?[作用] 用于初始化 Winsock ?[声明] int WSAStarup (WORD wVersionRequested, LPWSADATA lpWSAData); ?[参数] wVersionRequested - 要求使用 Winsock 的最低版本号 lpWSAData - Winsock 的详细资料?[返回值] 当函数成功调用时返回 0,失败时返回非 0的值程序分析—— Step 2 //创建本地 Socket SOCKET sockClient = socket(, SOCK_STREAM, 0); socket ?[作用]用于生成 socket(socket Descriptor) ?[声明] SOCKET socket(int af, int type, int protocol); ?[参数] ? af - 地址家族(通常使用) ? type - socket 的种类? SOCK_STREAM : 用于 TCP 协议? SOCK_DGRAM : 用于 UDP 协议? protocol - 所使用的协议?[返回值]当函数成功调用时返回一个新的 SOCKET(Socket Descriptor), 失败时返回 INVALID_SOCKET. 程序分析—— Step 3 //设置服务器地址 sockaddr_in server; memset(&server, 0, sizeof(sockaddr_in)); = ; = inet_addr(argv[1]); = htons((u_short)atoi(argv[2])); socketaddr_in ? struct socketaddr_in { unsigned short int sin_family; uint16_t sin_port; struct in_addr sin_addr; unsigned char sin_zero[8]; }; ? struct in_addr { uint32_t s_addr; }; ? sin_family 即为 sa_family sin_port 为使用的 port 编号 为 IP地址 sin_zero 未使用。