代码
和server一样,先包含头文件、库等
第二步 初始化socket
第三步 定义一个套接字
SOCKET sockClie = socket(AF_INET, SOCK_STREAM, 0);if (INVALID_SOCKET == sockClie){printf("socket errorNum = %d\n", GetLastError());return -1;}
注意,如果触发了容错机制,可以打开工具->错误查找,查找错误代码,然后进行改正
第四步 配置网络地址
SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr = inet_addr("192.168.8.246"); addrSrv.sin_family = AF_INET;addrSrv.sin_port = htons(6000);
第五步,不用绑定,也不用监听,直接连接服务器
if (SOCKET_ERROR == connect(sockClie, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR))){printf("connect errorNum = %d\n", GetLastError());return -1;}
第六步 收发数据,先接受服务器的数据,然后再发送,因为服务器是宪发后收的
char recvBuff[100] = { 0 };int iLen = recv(sockClie, recvBuff, 100, 0);printf("recvBuff=%s\n", recvBuff);const char sendBuff[100] = { "world" };iLen = send(sockClie, (char*) sendBuff, 100, 0);
第七步 关闭连接,然后清理连接
closesocket(sockClie);WSACleanup();
第一次生成后遇到了这样的问题
error C4996 : ‘inet_addr’ : Use inet_pton() or InetPton() instead ordefine _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
我们直接百度_WINSOCK_DEPRECATED_NO_WARNINGS,按照教程更改了这个错误
我们可以运行多个client程序,同时与服务器进行通信,如果打开无数个client程序会怎么样呢