-
创建套接字
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
相关推荐
0+1115 小时前
Linux --从 poll 到 epoll多路转接青瓦梦滋5 小时前
WebSocket协议桌面运维家6 小时前
旧电脑跑不动课程软件,VDI云桌面怎样接着用?zhang133830890756 小时前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案知已难寻6 小时前
第 2 篇 · 云的地基:服务器、存储、网络三大基础设施IpdataCloud8 小时前
批量查IP的API接口怎么选?免费API配额瓶颈与离线库本地批量方案实测今天重构了吗9 小时前
Linux 上 rm -rf 删错了能找回吗ITyunwei09879 小时前
售后夜间值守怎么落地:从告警到交接的工单系统配置笔记Smoothcloud润云10 小时前
GPU远程纳管安全吗?最小权限、网络边界与日志审计实战ai大模型-探索者10 小时前
Function Call与MCP(区别、联系与实战)