-
创建套接字
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
相关推荐
Xの哲學6 小时前
Linux流量控制: 内核队列的深度剖析tuokuac7 小时前
docker中nginx配置报错解决掘根7 小时前
【消息队列项目】虚拟机管理实现老王熬夜敲代码8 小时前
网络中数据传输的具体过程汤愈韬9 小时前
TK_网络基础和常见攻击(笔记)程序员佳佳9 小时前
2025年大模型终极横评:GPT-5.2、Banana Pro与DeepSeek V3.2实战硬核比拼(附统一接入方案)学烹饪的小胡桃10 小时前
【运维学习】实时性能监控工具 WGCLOUD v3.6.2 更新介绍北邮刘老师10 小时前
【智能体互联协议解析】需要“智能体名字系统”(ANS)吗?照海19Gin11 小时前
【企业网架构实验解析】三层组网与 AC+AP 无线部署的协议逻辑(eNSP 仿真实践)Lilixxs11 小时前
wireshark LLDP 协议抓包获取 M580 PLC 网口地址