有关一个socket多线程通信问题。

我开多个ClientA,ClientB,ClientC等客户端通过socket发送请求给一个Server服务器。同时服务器返回对应数据给每个发送了请求的客户端。想了好久都... 我开多个ClientA,ClientB,ClientC等客户端通过socket发送请求给一个Server服务器。同时服务器返回对应数据给每个发送了请求的客户端。想了好久都没想到一个好的解决办法,求高人指点下迷津。 展开
 我来答
cactis0906
2012-02-27 · TA获得超过138个赞
知道小有建树答主
回答量:154
采纳率:100%
帮助的人:89.5万
展开全部
首先程序的服务端应该new一个线程,专门接收客户端登陆的,这个线程叫做监听线程,可以设置连接数的,比如10个,表示同时能接收到十个客户端了,这个是并发的,不是表示只能接收这么多连接。每一个客户端登陆进来,客户端和服务端将建立一个连接,这个就是他们之间的套接字。然后你接收到这个连接之后,再单独为这个连接再开一个线程,把socket参数传进你新开的线程,来专门处理这个连接即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1a812615e
2012-02-26 · TA获得超过1146个赞
知道小有建树答主
回答量:739
采纳率:66%
帮助的人:413万
展开全部
服务端用多线程啊...一个线程处理一个客户端...这样就OK了...
追问
服务器端,开辟多个线程。具体的怎么实行,还是不太清楚。是不是每个线程中都开个socket套接字实现与客户端的socket套接字匹配。如果这样,服务器端我又怎么知道该开辟多少个线程因为我不知道客户端的数量,开辟的线程是不是还得使用生产者消费者模式,用同步互斥信号量控制,对端口数据的读取。
追答
没那么复杂,,,,服务端循环监听客户端连接,,,客户端一旦连接后即可获得客户端的套接字,,,然后生成一个线程或者从线程池中取个线程处理该套接字.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小黑猫爱吃小鱼干
2012-02-26 · 超过11用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:27.9万
展开全部
用线程池可以处理多个客户端的请求, 具体的做法你自己上网再搜搜
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式