好的,以下是一个简单的 C++ TCP 服务端示例代码: ```cpp #include <iostream> #include <cstring> #include <sys/socket.h> #include <netinet/in.h> #include <unistd.h> using namespace std; int main() { int server_fd, new_socket; struct sockaddr_in address; int opt = 1; int addrlen = sizeof(address); char buffer[1024] = {0}; char *hello = "Hello from server"; // 创建 socket 文件描述符 if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) { perror("socket failed"); exit(EXIT_FAILURE); } // 设置 socket 选项 if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt))) { perror("setsockopt"); exit(EXIT_FAILURE); } address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; address.sin_port = htons(8080); // 绑定 socket 到指定地址和端口号 if (bind(server_fd, (struct sockaddr *)&address, sizeof(address)) < 0) { perror("bind failed"); exit(EXIT_FAILURE); } // 监听指定连接数(这里是 10)的请求队列 if (listen(server_fd, 10) < 0) { perror("listen"); exit(EXIT_FAILURE); } cout << "Server is listening on port 8080...\n"; // 接受客户端请求并建立连接 if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t*)&addrlen)) < 0) { perror("accept"); exit(EXIT_FAILURE); } // 向客户端发送数据 send(new_socket, hello, strlen(hello), 0); cout << "Hello message sent\n"; // 接收客户端数据并回复 memset(buffer, 0, sizeof(buffer)); int valread = read(new_socket, buffer, sizeof(buffer)); cout << "Received message from client: " << buffer << endl; send(new_socket, buffer, strlen(buffer), 0); cout << "Message sent back to client: " << buffer << endl; // 关闭连接和释放资源 close(new_socket); close(server_fd); return 0; } ``` [2024-02-23 09:58:46 | AI写代码神器 | 653点数解答]