-
创建套接字
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
相关推荐
Empty-Filled20 分钟前
AI生成测试用例功能怎么测:一个完整实战案例峥无1 小时前
Linux系统编程基石:静态库·动态库·ELF文件·进程地址空间全景图码云数智-大飞1 小时前
本地部署大模型:隐私安全与多元优势一站式解读jinanwuhuaguo1 小时前
(第二十九篇)OpenClaw 实时与具身的跃迁——从异步孤岛到数字世界的“原住民”等风来不如迎风去2 小时前
【win11】最佳性能:fix 没有壁纸,一直黑屏Harvy_没救了2 小时前
【网络部署】 Win11 + VMware CentOS8 + Nginx 文件共享服务 Wikilzhdim3 小时前
SQL 入门 12:SQL 视图:创建、修改与可更新视图汤愈韬3 小时前
NAT Server 与目的Nat2401_873479403 小时前
断网时如何实时判断IP归属?嵌入本地离线库,保障风控不中断7ACE4 小时前
Wireshark TS | TLP 超时时间