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);
相关推荐
hanyi_qwe17 小时前
文本三剑客--awk
linux·运维·服务器
liu****17 小时前
27.epoll(三)
服务器·开发语言·网络·tcp/ip·udp
云飞云共享云桌面18 小时前
如何降低非标自动化工厂的研发软件采购成本
运维·服务器·网络·数据库·性能优化·自动化
泰克教育官方账号18 小时前
泰涨知识 | 什么是自动化巡检?
运维·服务器·数据库
怀旧,18 小时前
【Linux系统编程】7. 进程的概念(上)
linux·运维·服务器
7***n7519 小时前
API网关设计模式
linux·服务器·设计模式
时代新威powertime19 小时前
等保三级|安全通信网络自评估指南
网络·安全·等保测评
国服第二切图仔20 小时前
检测隧道HTTP代理的可用性的几种方法
网络·网络协议·http
JH307320 小时前
引依赖包和对这个包发起rpc调用有什么区别
网络·网络协议·rpc
zzzsde20 小时前
【Linux】基础开发工具(1):软件包管理器&&vim编辑器
linux·运维·服务器