您好,我要实现socket连接多个客户端,针对每个客户端发送的数据做不同处理,请问怎样区分每个客户端?
展开全部
每个连接均是一个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 广告
2023-06-05 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP...
点击进入详情页
本回答由Storm代理提供
展开全部
楼主解决了么?我也有类似的需求,如果解决了,麻烦告知下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询