tcp 服务器的设计思路

  1. 创建套接字

    复制代码
    int sockfd = socket(AF_INET, SOCK_STREAM, 0);
    • AF_INET:IPv4 协议
    • SOCK_STREAM:TCP 流式套接字
    • 0:默认协议
  2. 绑定 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));
  3. 监听连接

    复制代码
    listen(sockfd, 5); // 最大等待队列长度为5
  4. 接受连接

    复制代码
    struct sockaddr_in cli_addr;
    socklen_t len = sizeof(cli_addr);
    int connfd = accept(sockfd, (struct sockaddr*)&cli_addr, &len);
    • 返回一个新的套接字 connfd 用于与客户端通信
    • 原套接字 sockfd 继续用于接受其他连接
  5. 数据交互

    复制代码
    char buffer[1024];
    recv(connfd, buffer, sizeof(buffer), 0); // 接收数据
    send(connfd, buffer, strlen(buffer), 0); // 发送数据
  6. 关闭连接

    复制代码
    close(connfd);
相关推荐
爱学习的程序媛17 分钟前
ICMP协议详解
网络·网络协议·网络安全·通信协议·icmp·网络运维
隐擎fox19 分钟前
解构无感人机验证底层机制:行为生物轨迹采样、环境评分模型与自动化对抗实战
自动化测试·python·网络协议·tcp/ip·网络爬虫
T1mzhou2 小时前
ARM64 平台安全学习记录
linux·服务器·arm开发·arm
yeflx2 小时前
ECS阿里云服务部署
网络
GG-_-Bond2 小时前
基于dpdk实现udp接收数据
linux·网络·udp
平凡シンプル2 小时前
TCP UDP 网络通信插件 SL-Uniplugin-Tcp-Udp
网络·学习·uniapp·记录
小程序设计2 小时前
Easy-Shop商城小程序漏洞挖掘与防护研究
网络·安全
万联WANFLOW3 小时前
TikTok Shop上线“Sell Across EU”,欧洲社交电商迎来生态重构
网络·业界资讯
tedcloud1233 小时前
God‘s Eye View 怎么搭建?在云服务器上部署一个实时 3D 地球可视化平台
linux·服务器·开发语言·后端·rust
初願致夕霞3 小时前
Linux 进程间通信(IPC)机制详解:管道、FIFO 与 System V 共享内存
linux·服务器·c++