




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——C语言socket多线程编程限制客户端连接数C语言socket多线程编程限制客户端连接数
C语言传递参数均是以值传递passbyvalue,另外也可以传递指针apointerpassedbyvalue。以下是我为大家探寻整理的C语言socket多线程编程限制客户端连接数,梦想能给大家带来扶助!更多精彩内容请实时关注我们我!
先上一些多线程需要使用的函数定义:
代码如下:
DWORDWINAPIProcessClientRequestsLPVOIDlpParam//新线程将会执行的函数定义
return0;
HANDLEhandler=CreateThreadNULL,0,ProcessClientRequests,clientsocket,0,NULL;//这里对比简朴,clientsocket是个指针,是从主线程传入新线程的参数
WaitForMultipleObjectsMAXCLIENTS,threads,TRUE,INFINITE;//用来阻塞主线程,直到全体创造的子线程都完成任务为止,才持续执行后面的代码
forinti=0;i
CloseHandlethreads[i];//创造的'每个子线程的HANDLE都会被保存在HANDLE数组中,这个函数用于关闭各个handle所对应的线程空间
服务器端程序
主线程代码如下:
代码如下:
#defineMAXCLIENTS3//宏定义,最多3个客户端连接
intmain
WSADATAwsaData;
WSAStartupMAKEWORD2,2,wsaData;
HANDLEthreads[MAXCLIENTS];
SOCKETs=socketPF_INET,SOCK_STREAM,IPPROTO_TCP;
sockaddr_insockaddr;
sockaddr.sin_family=PF_INET;
sockaddr.sin_addr.S_un.S_addr=inet_addr127.0.0.1;
sockaddr.sin_port=htons9000;
binds,SOCKADDR*sockaddr,sizeofSOCKADDR;
listens,1;
printflisteningonport[%d].n,9000;
intexistingClientCount=0;
whileTRUE
SOCKADDRclientAddr;
intsize=sizeofSOCKADDR;
SOCKETclientsocket;
clientsocket=accepts,clientAddr,size;
printf***SYS***Newclienttouched.n;
ifexistingClientCount
threads[existingClientCount++]=CreateThreadNULL,0,ProcessClientRequests,clientsocket,0,NULL;//启动新线程,并且将socket传入
else
char*msg=ExceededMaxincomingrequests,willrefusedthisconnect!rn;
sendclientsocket,msg,strlenmsg+sizeofchar,NULL;//发送拒绝连接消息给客户端
printf***SYS***REFUSED.n;
closesocketclientsocket;//释放资源
break;
printfMaximizeclientsoccurredford%.rn,MAXCLIENTS;
WaitForMultipleObjectsMAXCLIENTS,threads,TRUE,INFINITE;//等待全体子线程,直到完成为止
closesockets;
forinti=0;i
CloseHandlethreads[i];//清理线程资源
WSACleanup;
printfClearedall.rn;
getchar;
exit0;
子线程函数定义
代码如下:
DWORDWINAPIProcessClientRequestsLPVOIDlpParam
SOCKET*clientsocket=SOCKET*lpParam;//这里需要强制转换,留神:指针类型的
char*msg=Hello,myclient.rn;
send*clientsocket,msg,strlenmsg+sizeofchar,NULL;
printf***SYS***HELLO.n;
whileTRUE
charbuffer[MAXBYTE]=0;
recv*clientsocket,buffer,MAXBYTE,NULL;
ifstrcmpbuffer,exit==0
char*msg_bye=Bye.rn;
send*clientsocket,msg_bye
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2022学年上海复旦附中高一(下)期末政治试题及答案
- 公交实体卡活动方案
- 公众号系列活动策划方案
- 公会趣味线上活动方案
- 2025至2030年中国低相噪晶体振荡器行业投资前景及策略咨询报告
- 2025至2030年中国PET瓶洗瓶填充封盖机行业投资前景及策略咨询报告
- 贵阳贵安2025年公开招聘事业单位工作人员笔试排名笔试合格分数线复审笔试历年典型考题及考点剖析附带答案详解
- 公司世界杯竞猜活动方案
- 公司之星活动策划方案
- 公司亲子马拉松活动方案
- 2025山东“才聚齐鲁成就未来”水发集团高校毕业招聘241人笔试参考题库附带答案详解
- 2024年度江苏省数据集团有限公司社会招聘笔试参考题库附带答案详解
- GB/T 45355-2025无压埋地排污、排水用聚乙烯(PE)管道系统
- 《爱莲说》对比阅读-2024-2025中考语文文言文阅读专项训练(含答案)
- 国家开放大学《Photoshop图像处理》章节测试题参考答案
- DZ∕T 0214-2020 矿产地质勘查规范 铜、铅、锌、银、镍、钼(正式版)
- 马工程版《中国经济史》各章思考题答题要点及详解
- GB 4806.7-2016食品安全国家标准食品接触用塑料材料及制品
- 高压电气预防性试验方案
- 概率论与数理统计公式整理
- 国家标准色卡电子word图片
评论
0/150
提交评论