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);
相关推荐
Jewel Q28 分钟前
防火墙NAT策略处理流程
运维·服务器·网络
失重外太空啦32 分钟前
NFS服务器的搭建
运维·服务器·网络
矮油0_o33 分钟前
15.套接字和标准I/O
服务器·c语言·网络·网络编程·socket
利刃大大35 分钟前
【高并发服务器】十二、LoopThreadPool线程池管理模块
服务器·c++·项目
ai旅人37 分钟前
深入理解OkHttp超时机制:连接、读写、调用超时全面解析
java·网络·okhttp
我也要当昏君37 分钟前
4.2 IPv4【2009统考真题】
网络·智能路由器
爱奥尼欧44 分钟前
【Linux笔记】网络部分——网络层IP协议
linux·网络·笔记
埃伊蟹黄面1 小时前
告别手动编译:用Makefile自动化你的Linux项目
linux·服务器
Once_day1 小时前
Linux错误(7)接口处于Down状态不通告IPv6地址变更事件
linux·运维·服务器