news 2026/10/13 10:12:32

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/10/12 16:55:16

解锁系统重装新境界:一键自动化工具的完整实战指南

解锁系统重装新境界&#xff1a;一键自动化工具的完整实战指南 【免费下载链接】reinstall 又一个一键重装脚本 项目地址: https://gitcode.com/GitHub_Trending/re/reinstall 还在为服务器系统重装而烦恼吗&#xff1f;传统的系统重装过程不仅耗时耗力&#xff0c;还容…

作者头像 李华
网站建设 2026/10/11 9:44:04

3分钟掌握ModAssistant:Beat Saber模组安装终极指南

3分钟掌握ModAssistant&#xff1a;Beat Saber模组安装终极指南 【免费下载链接】ModAssistant Simple Beat Saber Mod Installer 项目地址: https://gitcode.com/gh_mirrors/mo/ModAssistant ModAssistant是专为Beat Saber玩家打造的PC模组管理神器&#xff0c;支持一键…

作者头像 李华
网站建设 2026/10/11 6:52:27

FSearch:Linux文件搜索工具的终极使用指南

FSearch&#xff1a;Linux文件搜索工具的终极使用指南 【免费下载链接】fsearch A fast file search utility for Unix-like systems based on GTK3 项目地址: https://gitcode.com/gh_mirrors/fs/fsearch 还在为寻找Linux系统中的文件而烦恼吗&#xff1f;FSearch这款快…

作者头像 李华
网站建设 2026/10/11 18:27:47

双拼输入法:从打字困扰到效率达人的蜕变之路

双拼输入法&#xff1a;从打字困扰到效率达人的蜕变之路 【免费下载链接】Shuang :pencil2: 双拼练习 项目地址: https://gitcode.com/gh_mirrors/sh/Shuang 还记得那些年被全拼输入法支配的恐惧吗&#xff1f;每次输入都要敲击四五个键位&#xff0c;效率低下不说&…

作者头像 李华
网站建设 2026/10/10 14:53:58

ThinkPad双系统革命:OpenCore黑苹果完整实战手册

ThinkPad双系统革命&#xff1a;OpenCore黑苹果完整实战手册 【免费下载链接】t480-oc &#x1f4bb; Lenovo ThinkPad T480 / T580 / X280 Hackintosh (macOS Monterey 12.x & Ventura 13.x) - OpenCore 项目地址: https://gitcode.com/gh_mirrors/t4/t480-oc 还在…

作者头像 李华