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);
相关推荐
大树8813 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
小宇宙Zz14 小时前
Maven依赖冲突
java·服务器·maven
网络研究院15 小时前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智15 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest15 小时前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_15 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈15 小时前
Unix 与 Linux 异同小叙
linux·服务器·unix
2601_9618451516 小时前
粉笔行测题库|系统班|刷题
网络·百度·微信·微信公众平台·facebook·新浪微博
程序猿阿伟16 小时前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
凡人叶枫16 小时前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++