酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

用cpp写一个tcp服务端

以下是一个使用C++编写的TCP服务器示例代码: ```cpp #include <iostream> #include <sys/socket.h> #include <arpa/inet.h> #include <unistd.h> #include <cstring> int main() { int serverSocket, newSocket, portNum; socklen_t bufferSize = 1024; char buffer[bufferSize]; struct sockaddr_in serverAddr{}; struct sockaddr_storage serverStorage{}; socklen_t addr_size; // 创建套接字 serverSocket = socket(PF_INET, SOCK_STREAM, 0); // 配置服务器地址 portNum = 1234; serverAddr.sin_family = AF_INET; serverAddr.sin_port = htons(portNum); serverAddr.sin_addr.s_addr = inet_addr("127..0.1"); memset(serverAddr.sin_zero, '\0', sizeof serverAddr.sin_zero); // 绑定套接字 bind(serverSocket, (struct sockaddr *) &serverAddr, sizeof(serverAddr)); // 监听连接请求 if (listen(serverSocket, 5) == 0) { std::cout << "Listening..." << std::endl; } else { std::cout << "Error in listening" << std::endl; } addr_size = sizeof(serverStorage); // 接受连接 newSocket = accept(serverSocket, (struct sockaddr *) &serverStorage, &addr_size); // 接收和发送数据 strcpy(buffer, "Server connected..."); send(newSocket, buffer, bufferSize, 0); std::cout << "Connected to client" << std::endl; while (true) { recv(newSocket, buffer, bufferSize, 0); if (strcmp(buffer, "exit") == 0) { std::cout << "Client disconnected" << std::endl; break; } std::cout << "Client: " << buffer << std::endl; std::cout << "Server> "; std::cin.getline(buffer, bufferSize); send(newSocket, buffer, bufferSize, 0); } close(newSocket); close(serverSocket); return 0; } ``` 这段代码使用了套接字编程来创建一个TCP服务器。通过`socket()`函数创建一个套接字,然后使用`bind()`函数将套接字绑定到指定的地址和端口号,`listen()`函数开始监听连接请求。 一旦有客户端连接请求到达,`accept()`函数会接受连接,然后可以通过`send()`和`recv()`函数来发送和接收数据。 在这个例子中,服务器会不断接收客户端发送的消息,并将其打印出来。如果接收到的消息是"exit",服务器会断开连接并停止运行。服务器还可以从标准输入读取用户输入,并将其发送给客户端。 在实际使用中,你可能需要根据自己的需求进行相应的修改和扩展。 [2024-02-23 09:59:15 | AI写代码神器 | 1981点数解答]

相关提问