-
创建套接字
int sockfd = socket(AF_INET, SOCK_STREAM, 0);AF_INET:IPv4 协议SOCK_STREAM:TCP 流式套接字0:默认协议
-
绑定 IP 和端口
struct sockaddr_in serv_addr; memset(&serv_addr, 0, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = INADDR_ANY; // 任意网卡 serv_addr.sin_port = htons(8080); // 端口号 bind(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)); -
监听连接
listen(sockfd, 5); // 最大等待队列长度为5 -
接受连接
struct sockaddr_in cli_addr; socklen_t len = sizeof(cli_addr); int connfd = accept(sockfd, (struct sockaddr*)&cli_addr, &len);- 返回一个新的套接字
connfd用于与客户端通信 - 原套接字
sockfd继续用于接受其他连接
- 返回一个新的套接字
-
数据交互
char buffer[1024]; recv(connfd, buffer, sizeof(buffer), 0); // 接收数据 send(connfd, buffer, strlen(buffer), 0); // 发送数据 -
关闭连接
close(connfd);
tcp 服务器的设计思路
芝士小宇2025-10-08 21:46
相关推荐
RisunJan16 分钟前
Linux命令-sysctl(运行时修改内核参数)A_humble_scholar30 分钟前
Linux 网络基础(三)下的 HTTP 核心详解:从请求响应到状态管袅沫31 分钟前
Nginx中部署多个前端项目——区分路径Lucis__35 分钟前
如何实现长连接通信机制?Websocket的最佳实践fei_sun40 分钟前
UVM中的TLM1.0通信MartinYeung544 分钟前
[论文学习]MCPTox:面向真实世界MCP服务器的工具投毒攻击基准测试winfreedoms1 小时前
VMware 桥接模式无法联网:从 DHCPDISCOVER 到静态 IP 的完整排障实战JAVA面经实录9172 小时前
网络编程基础(Java Web/分布式前置·完整版)(十一)Shadow(⊙o⊙)2 小时前
Linux网络部分——TCP服务端、客户端架构分析多进程、多线程、线程池Escalating_xu2 小时前
【Linux】基础 I/O 深度解析:FILE、文件描述符、open/read/write、重定向与缓冲区