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

用cpp写一个tcp服务端

好的,以下是一个简单的用C++编写的TCP服务端示例: ```cpp #include <iostream> #include <string> #include <sys/socket.h> #include <netinet/in.h> #include <unistd.h> using namespace std; int main() { // 创建套接字 int server_fd = socket(AF_INET, SOCK_STREAM, 0); if (server_fd == -1) { perror("socket"); return 1; } // 绑定地址和端口 struct sockaddr_in server_addr; server_addr.sin_family = AF_INET; server_addr.sin_port = htons(8080); // 设置端口号 server_addr.sin_addr.s_addr = INADDR_ANY; // 监听所有IP地址 if (bind(server_fd, (struct sockaddr*)&server_addr, sizeof(server_addr)) == -1) { perror("bind"); close(server_fd); return 1; } // 监听连接 if (listen(server_fd, 10) == -1) { perror("listen"); close(server_fd); return 1; } // 接受连接并处理请求 int client_fd = accept(server_fd, NULL, NULL); // 阻塞等待连接 if (client_fd == -1) { perror("accept"); close(server_fd); return 1; } // 读取客户端发送的数据 char buffer[256]; int len = read(client_fd, buffer, sizeof(buffer)); if (len == -1) { perror("read"); close(client_fd); close(server_fd); return 1; } // 处理请求并发送响应数据给客户端 string response = "Hello, client!"; // 响应数据,可以根据实际需求修改 len = response.length(); // 获取响应数据的长度 if (write(client_fd, response.c_str(), len) == -1) { perror("write"); close(client_fd); close(server_fd); return 1; } // 关闭连接和套接字 close(client_fd); close(server_fd); return 0; } ``` 这个示例代码创建了一个TCP服务端,监听端口号为8080,等待客户端连接。当有客户端连接时,服务端会读取客户端发送的数据,处理请求并发送响应数据给客户端,最后关闭连接和套接字。需要注意的是,在实际应用中,需要根据具体需求进行错误处理和数据处理的逻辑实现。 [2024-02-23 09:57:48 | AI写代码神器 | 663点数解答]

相关提问