news 2026/6/10 1:49:52

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/6/9 18:54:06

Vue进阶实战06,吃透 Vuex 核心概念:State/Mutation/Action/Getter 拆解与实战

在 Vue 项目开发中&#xff0c;当组件间需要共享状态、跨层级通信时&#xff0c;单纯依靠props和emit会让代码变得杂乱且难以维护。Vuex 作为 Vue 官方的状态管理库&#xff0c;通过集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发…

作者头像 李华
网站建设 2026/6/9 18:51:07

GPU Burn终极指南:5步完成GPU稳定性压力测试

GPU Burn终极指南&#xff1a;5步完成GPU稳定性压力测试 【免费下载链接】gpu-burn Multi-GPU CUDA stress test 项目地址: https://gitcode.com/gh_mirrors/gp/gpu-burn GPU Burn是一款专为多GPU系统设计的CUDA压力测试工具&#xff0c;通过高强度计算负载验证GPU硬件的…

作者头像 李华
网站建设 2026/6/9 18:50:55

基于微信小程序的书籍推荐系统的设计与实现文献综述

河北科技师范学院本科毕业设计文献综述基于微信小程序的书籍推荐系统的设计与实现的研究分析院&#xff08;系、部&#xff09;名 称 &#xff1a; 数学与信息科技学院 专 业 名 称&#xff1a; 网络工程 学 生 姓 名&#xff1a; xx …

作者头像 李华
网站建设 2026/6/9 18:51:46

Bodymovin插件工作流优化:提升AE动画导出效率的完整指南

Bodymovin插件工作流优化&#xff1a;提升AE动画导出效率的完整指南 【免费下载链接】bodymovin-extension Bodymovin UI extension panel 项目地址: https://gitcode.com/gh_mirrors/bod/bodymovin-extension 想要彻底解决AE动画导出效率低下的问题吗&#xff1f;通过B…

作者头像 李华
网站建设 2026/6/9 18:54:33

DisableFlagSecure:Android截屏限制的终极解决方案

DisableFlagSecure&#xff1a;Android截屏限制的终极解决方案 【免费下载链接】DisableFlagSecure 项目地址: https://gitcode.com/gh_mirrors/dis/DisableFlagSecure 在Android生态系统中&#xff0c;许多应用程序为了保护敏感信息&#xff0c;会使用FLAG_SECURE标志…

作者头像 李华
网站建设 2026/6/9 22:32:02

Python Docx Template:彻底改变Word文档自动化处理的强力工具

Python Docx Template&#xff1a;彻底改变Word文档自动化处理的强力工具 【免费下载链接】python-docx-template Use a docx as a jinja2 template 项目地址: https://gitcode.com/gh_mirrors/py/python-docx-template 还在为重复的Word文档编辑而烦恼吗&#xff1f;Py…

作者头像 李华