您好,我要实现socket连接多个客户端,针对每个客户端发送的数据做不同处理,请问怎样区分每个客户端?

 我来答
lzxbill7
2012-11-21 · TA获得超过116个赞
知道答主
回答量:74
采纳率:0%
帮助的人:91.8万
展开全部
每个连接均是一个4元组(服务器IP、服务器端口号、客户机IP、客户机端口号),显然服务器根据这些个4元组区别客户端了。这个原理同IP包传输是一样的,均是根据IP+端口号方式。
更多追问追答
追问
if(socket.getInetAddress()==192.168.1.103)  Thread thread = new Thread(lt);  thread.start();这样是错的 请问判断语句应该怎么写?假设客户机IP:192.168.1.103
追答
不是这样来区分客户端,一般的服务器都是多进程、多线程的,每当一个客户接入进来时会有这种代码:
========================================
for ( ; ; ) {//循环等待客户连接请求
clilen = addrlen;
connfd = Accept(listenfd, cliaddr, &clilen);//接受连接,这里的connfd就代表了4元组
Pthread_create(&tid, NULL, &doit, (void *) connfd); //将connfd传递给新建的线程负责处理这个客户
}//主进程返回去接受其他客户
========================================
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-06-05 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP... 点击进入详情页
本回答由Storm代理提供
百度网友ea1996d
2017-09-13
知道答主
回答量:35
采纳率:33%
帮助的人:6万
展开全部
楼主解决了么?我也有类似的需求,如果解决了,麻烦告知下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式