嵌入式学习——3——TCP并发(未完成)

1、多进程实现TCP并发

复制代码
//定义信号处理函数
void handler(int signo)
{
    if(signo == SIGCHLD)
    {
        // 回收所有的僵尸进程
        while(waitpid(-1, NULL, WNOHANG) != 0);    
    }
}

int main(){
    //将SIGCHLD信号绑定到信号处理函数中
    signal(SIGCHLD, handler);

    sfd = socket();           //创建用于通信的套接字文件描述符
    bind();                      //绑定ip地址和端口号
    listen();                 //将套接字设置成被动监听状态

    while(1) {
        newfd = accept();             //阻塞等待客户端连接请求,并为其创建一个新的用于通信的套接字问津描述符
        pid = fork();             //创建子进程用于处理客户端
        if(pid > 0) {
            //父进程
            close(newfd);  
  
        }elseif(pid == 0) {
            // 子进程
            //跟当前客户端进行通信
            close(sfd);           //关闭sfd
            recv();              //阻塞读取消息
            send();              //发送消息
            close(newfd);                //关闭套接字
            exit();                 //退出进程
        }
    }
    close(sfd);                      //关闭监听
    return 0; 
}

2、多线程实现TCP并发

复制代码
//定义线程体函数
void *deal_cli_msg(void *arg)
{
        //跟当前客户端进行通信
    recv();              //阻塞读取消息
    send();              //发送消息
    close(newfd);                //关闭套接字
    pthread_exit(NULL);            //退出线程
}

int main(){
    sfd = socket();           //创建用于通信的套接字文件描述符
    bind();                      //绑定ip地址和端口号
    listen();                 //将套接字设置成被动监听状态

    while(1) {
        newfd = accept();             //阻塞等待客户端连接请求,并为其创建一个新的用于通信的套接字问津描述符
        pthread_create(&tid, NULL, deal_cli_msg, &info);         //创建分支线程用于跟客户端进行通信
        pthread_detach(tid);                      //将线程设置成分离态
    }
    close(sfd);                      //关闭监听
    return 0;
}

3、select

4、epoll

相关推荐
跨境麦香鱼4 分钟前
2026自动化抢鞋机器人:如何通过高并发代理提高成功率?
运维·网络·自动化
互联科技报5 分钟前
好用稳定的5G网络仿真软件如何选?— 深度对比与选型指南
网络·arm开发·5g
桃子榛子杏子16 分钟前
学习记录6 增加速度
学习
小红的布丁17 分钟前
IP、子网、私有地址、ARP 与 Ping 通信全过程
网络·网络协议·tcp/ip
風清掦17 分钟前
【江科大STM32学习笔记-10】I2C通信协议 - 10.2 硬件 I2C 读写MPU6050
笔记·stm32·单片机·嵌入式硬件·学习
KKKlucifer20 分钟前
4A 平台合规自动化:从策略配置到审计追溯的全链路技术实现
运维·网络·自动化
zbtlink23 分钟前
5G CPE和光纤宽带,谁才是未来?
网络·5g·智能路由器
爱研究的小梁24 分钟前
浅析适配应急与关键场景的三类聚合终端
大数据·网络
峥嵘life29 分钟前
Android + Kiro AI软件开发实战教程
android·后端·学习
老张的张Z31 分钟前
CISSP 域5知识点 访问控制模型
网络·安全·信息安全