-
创建套接字
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
相关推荐
和裕14 分钟前
定制纸箱刀模费全解析:费用定义与可减免合作场景剑锋所指,所向披靡!20 分钟前
HTTP服务器的基本相关概念troy12822 分钟前
智能体沙箱:如何为 Agent 模型搭建安全试验场,降低幻觉带来的损失LHR_friendship40 分钟前
HCIP课程全部内容硅基手札1 小时前
【Linux内核专栏 11】驱动框架:platform / char / misc / 设备树Chengbei111 小时前
拒绝无效洞!蚂蚁Src榜一Clown 2.0 SRC SKill 第二代带状态闭环的白盒 & 黑盒审计 Skill2301_777998341 小时前
TCP协议:滑动窗口与流量控制156082072191 小时前
使用JFMRFVU3P多通道同步相位测试2401_868534782 小时前
网络冗余设计well06122 小时前
Linux 文件相关底层知识