使用C/C++实现Socket 聊天程序 Initsock.h 文件 // initsock.h 文件 #include #include #include #include #pragma comment(lib, "WS2_32") // 链接到WS2_32.lib class CInitSock { public: CInitSock(BYTE minorVer = 2, BYTE majorVer = 2) { // 初始化WS2_32.dll WSADATA wsaData; WORD sockVersion = MAKEWORD(minorVer, majorVer); if(::WSAStartup(sockVersion, &wsaData) != 0) { exit(0); } } ~CInitSock() { ::WSACleanup(); } }; TCP 版 TCPClient.cpp 文件 ////////////////////////////////////////////////////////// // TCPClient.cpp 文件 /* 《使用说明》 0.运行程序前请查看是否将initsock.h 文件引入到项目中。 1.首先修改聊天对方的IP 地址 2.请首先运行服务端(TCPServer)程序,再运行客户端(TCPClient)程序: 如配置正确服务端会收到相关连接信息。 3.连接成功后,需要由服务器端首先发起会话(输入消息并确认发送), 客户端收到消息后才能输入消息并确认发送到服务器端。 并且双方每次只能发送一条消息。如想发送第二条消息,需要等待该方成功 接受到另一方的消息后才能继续输入消息。 */ #include "InitSock.h" #include #include CInitSock initSock; // 初始化 Winsock 库 int main() { // 创建套节字 SOCKET s = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(s == INVALID_SOCKET) { printf(" Failed socket() \n"); return 0; } // 也可以在这里调用 bind 函数绑定一个本地地址 // 否则系统将会自动安排 // 填写远程地址信息 sockaddr_in servAddr; servAddr.sin_family = AF_INET; servAddr.sin_port = htons(4567); // 注意,这里要填写服务器程序(TCPServer 程序)所在机器的IP 地址 // 如果你的计算机没有联网,直接使用 127.0.0.1 即可 servAddr.sin_addr.S_un.S_addr = inet_addr("192.168.1.129"); if(::connect(s, (sockaddr*)&servAddr, sizeof(servAddr)) == -1) { printf(" Failed connect() \n"); return 0; } char buff[256]; char szText[256] ; while(TRUE) { //从服务器端接收数据 int nRecv = ::recv(s, buff, 256, 0); if(nRecv > 0) {...