C++实现简单TCP服务端:监听8080端口处理客户端请求
好的,以下是一个简单的用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,等待客户端连接。当有客户端连接时,服务端会读取客户端发送的数据,处理请求并发送响应数据给客户端,最后关闭连接和套接字。需要注意的是,在实际应用中,需要根据具体需求进行错误处理和数据处理的逻辑实现。 ######[AI写代码神器 | 663点数解答 | 2024-02-23 09:57:48]
- 易语言实现高并发 HTTP 操作:多线程、线程池与异步操作实战(字节豆包 | 849点数解答 | 2025-06-03 23:17:33)279
- Java 状态模式:模拟 TCP 连接多种状态及行为转换(GPT | 2147点数解答 | 2024-12-19 22:19:37)304
- Java实现状态模式:模拟TCP连接状态管理及行为处理(GPT | 1541点数解答 | 2024-12-19 22:19:57)289
- 代码排版:优化mitmproxy相关命令行代码格式(字节豆包 | 102点数解答 | 2024-11-07 11:31:23)281
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)363
- Linux开发:本地80端口请求完美转发至8080端口,主机IP 192.168.2.1设置指南(百度文心 | 395点数解答 | 2023-11-09 18:45:02)234
- CentOS下Java进程出现futex_wait_queue_me问题的处理全流程(阿里通义 | 283点数解答 | 2023-11-20 14:51:26)480
- 替雷利珠单抗致免疫相关性糖尿病:病例报道与机制探讨,为临床用药敲响警钟( | 164点数解答 | 2024-10-11 14:52:52)281
- Spring Web 应用报 MissingServletRequestParameterException:“username”参数缺失原因大排查(字节豆包 | 147点数解答 | 2024-10-30 10:10:34)262
- 代码纠错:从“std::uno”笔误到完整 C++ 网络程序的修正与优化(阿里通义 | 465点数解答 | 2024-11-23 20:41:37)250
- Python 代码转 C++:计算花朵鲜艳值总和(字节豆包 | 408点数解答 | 2026-04-19 21:50:57)12
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)334