news 2026/3/27 18:17:28

TCP服务器并发编程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TCP服务器并发编程

这里写目录标题

  • 1,多线程TCP并发控制

1,多线程TCP并发控制

基于多线程的TCP服务器并发程序

#include<iostream>#include<netinet/in.h>#include<vector>#include<unistd.h>#include<arpa/inet.h>#include<sys/socket.h>#include<sys/select.h>#include<sys/time.h>#include<cstring>#include<sys/select.h>#include<pthread.h>using namespace std;#definePORT8080#defineMAX_CLIENTS20#defineBUFFER_SIZE1024#defineMAX512struct SockInfo{struct sockaddr_in addr;int fd;};struct SockInfo infos[512];void*working(void*arg);void*working(void*arg){struct SockInfo*pinfo=(struct SockInfo*)arg;char ip[32];//inet_ntop(AF_INET,&pinfo->addr.sin_addr.s_addr,ip,sizeof(ip));//ntohs(pinfo->addr.sin_port);while(true){char buffer[1024];int len=recv(pinfo->fd,buffer,sizeof(buffer),0);if(len>0){cout<<buffer<<endl;}elseif(len==0){cout<<"客户端已经断开连接"<<endl;break;}else{break;}}}intmain(){int serverfd=socket(AF_INET,SOCK_STREAM,0);sockaddr_in addr;addr.sin_addr.s_addr=INADDR_ANY;addr.sin_port=htons(PORT);addr.sin_family=AF_INET;socklen_t len=sizeof(addr);bind(serverfd,(sockaddr*)&addr,len);listen(serverfd,MAX_CLIENTS);for(int i=0;i<MAX;i++){infos[i].fd=-1;}while(true){struct SockInfo*pinfo;for(int i=0;i<MAX;i++){if(infos[i].fd==-1){pinfo=&infos[i];break;}}socklen_t tmplen=sizeof(pinfo->addr);int cfd=accept(serverfd,(struct sockaddr*)&pinfo->addr,&tmplen);if(cfd==-1){perror("accept");continue;}pinfo->fd=cfd;//创建子线程pthread_t tid;pthread_create(&tid,NULL,working,pinfo);pthread_detach(tid);}close(serverfd);}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/13 11:13:34

一份不可多得的 《 C++ 刷算法》 教程指南

算法刷题中&#xff0c;C 凭借高效的执行效率、丰富的标准库&#xff08;STL&#xff09;成为主流选择。本教程聚焦刷题高频语法&#xff0c;摒弃冗余知识点&#xff0c;直击核心应用&#xff0c;帮助你快速掌握算法刷题所需的 C 语法工具。1. 关于 stdstd 是 C 标准库的命名空…

作者头像 李华
网站建设 2026/3/25 4:06:33

t3mujinpack胶片预设:用数字技术重现经典胶片美学

在数字摄影时代&#xff0c;t3mujinpack为你开启了一段全新的创意旅程。这套专为Darktable设计的胶片风格工具包&#xff0c;让你能够轻松为作品注入经典胶片的独特质感与情感深度。无论是追求富士Velvia的浓郁色彩&#xff0c;还是钟情柯达Portra的细腻层次&#xff0c;这里都…

作者头像 李华
网站建设 2026/3/24 22:56:21

LeetDown iOS设备降级工具:从入门到精通的完整实践指南

LeetDown iOS设备降级工具&#xff1a;从入门到精通的完整实践指南 【免费下载链接】LeetDown a GUI macOS Downgrade Tool for A6 and A7 iDevices 项目地址: https://gitcode.com/gh_mirrors/le/LeetDown 请基于给定的LeetDown项目资料&#xff0c;创作一篇关于iOS设备…

作者头像 李华
网站建设 2026/3/26 20:31:56

注意力门控网络:重塑医学图像智能分析的未来

注意力门控网络&#xff1a;重塑医学图像智能分析的未来 【免费下载链接】Attention-Gated-Networks Use of Attention Gates in a Convolutional Neural Network / Medical Image Classification and Segmentation 项目地址: https://gitcode.com/gh_mirrors/at/Attention-G…

作者头像 李华
网站建设 2026/3/26 22:36:28

LeetDown iOS降级工具:A6/A7设备终极降级指南

LeetDown iOS降级工具&#xff1a;A6/A7设备终极降级指南 【免费下载链接】LeetDown a GUI macOS Downgrade Tool for A6 and A7 iDevices 项目地址: https://gitcode.com/gh_mirrors/le/LeetDown LeetDown是一款专为A6和A7设备设计的macOS图形界面降级工具&#xff0c;…

作者头像 李华
网站建设 2026/3/25 11:19:17

如何快速将AE动画转换为网页交互效果:终极完整指南

如何快速将AE动画转换为网页交互效果&#xff1a;终极完整指南 【免费下载链接】bodymovin-extension Bodymovin UI extension panel 项目地址: https://gitcode.com/gh_mirrors/bod/bodymovin-extension 还在为Adobe After Effects中的精美动画无法在网页上完美呈现而烦…

作者头像 李华