长沙高端网站开发,做详情页的网站,男女做那种的的视频网站,直播视频网站1.注意事项
windows下winsock.h/winsock2.h linux下sys/socket.h 不同平台头文件不一样 #include winsock.h 或者 #include winsock2.h
2. 安装minGW
目标是在 Windows 环境下提供类似于 Unix/Linux 环境下的开发工具#xff0c;使开发者能够轻松地在 Wind…1.注意事项
windows下winsock.h/winsock2.h linux下sys/socket.h 不同平台头文件不一样 #include winsock.h 或者 #include winsock2.h
2. 安装minGW
目标是在 Windows 环境下提供类似于 Unix/Linux 环境下的开发工具使开发者能够轻松地在 Windows 上编写和编译 C、C 等程序。 安装参考链接
3. 代码
说明只有一个电脑创建进程测试的。代码保存成server.cpp最后运行
g serve.cpp -lws2_32serve.cpp
#include stdio.h
#include stdlib.h
#include string.h
#include winsock2.h
#include windows.h#pragma comment(lib, ws2_32.lib)#define PORT 8888
#define MAX_CONNECTIONS 5
//windows下winsock.h/winsock2.h
//linux下sys/socket.h
//不同平台头文件不一样
//#include winsock.h 或者 #include winsock2.h
//arpa/inet.h用windows.h代替DWORD WINAPI serverThread(LPVOID lpParam) {SOCKET serverSocket socket(AF_INET, SOCK_STREAM, 0);struct sockaddr_in serverAddr;serverAddr.sin_family AF_INET;serverAddr.sin_port htons(PORT);serverAddr.sin_addr.s_addr INADDR_ANY;bind(serverSocket, (struct sockaddr*)serverAddr, sizeof(serverAddr));listen(serverSocket, MAX_CONNECTIONS);printf(Server listening on port %d\n, PORT);struct sockaddr_in clientAddr;int clientAddrLen sizeof(clientAddr);SOCKET clientSocket accept(serverSocket, (struct sockaddr*)clientAddr, clientAddrLen);while (1) {char buffer[1024] {0};recv(clientSocket, buffer, 1024, 0);printf(Received message from client: %s\n, buffer);send(clientSocket, Message received.\n, strlen(Message received), 0);if (strcmp(buffer, serve_exit\n) 0) {break;}}closesocket(clientSocket);closesocket(serverSocket);return 0;
}int main() {WSADATA wsaData;WSAStartup(MAKEWORD(2, 2), wsaData);HANDLE serverThreadHandle CreateThread(NULL, 0, serverThread, NULL, 0, NULL);Sleep(100); // 等待服务器线程启动SOCKET clientSocket socket(AF_INET, SOCK_STREAM, 0);struct sockaddr_in serverAddr;serverAddr.sin_family AF_INET;serverAddr.sin_port htons(PORT);serverAddr.sin_addr.s_addr inet_addr(127.0.0.1);connect(clientSocket, (struct sockaddr*)serverAddr, sizeof(serverAddr));char message[1024];while (1) {printf(Enter message: );fgets(message, 1024, stdin);send(clientSocket, message, strlen(message), 0);if (strcmp(message, exit\n) 0) {break;}char buffer[1024] {0};recv(clientSocket, buffer, 1024, 0);printf(Server says: %s, buffer);}closesocket(clientSocket);CloseHandle(serverThreadHandle);WSACleanup();return 0;
}