java socket如何实现客户端与客户端的交互?

我知道javasocket可以实现客户端与服务端的交互,可是貌似并不能给每个客户就行标识啊,就是一个客户和服务端进行交互,可是如何客户端和客户端就行交互呢?我知道可以先将... 我知道java socket可以实现客户端与服务端的交互,可是貌似并不能给每个客户就行标识啊,就是一个客户和服务端进行交互,可是如何客户端和客户端就行交互呢?我知道可以先将客户端的消息在服务端读到然后再写给另一个客户端,那么另一个客户端该如何建立连接呢? 展开
 我来答
育知同创教育
2018-07-06 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
1、服务端监听一个端口,其它客户端都通过这个端口和服务端进行通信。
2、每个客户端连接上来,服务端给其一个标识ID。然后向其它所有客户端广播一下有新客户端接入,ID多少。
3、客户端要向客户端发送消息,可以以消息包的形式发送,就是把目的客户端的标识和发送的内容组成一个数据包发往服务器,服务器读取就知道要向哪 个客户端发送数据,然后把内容往目的客户端通道发送
百度网友426ea6b
推荐于2016-01-21 · TA获得超过376个赞
知道小有建树答主
回答量:112
采纳率:100%
帮助的人:126万
展开全部
给你一个思路:
1、服务端监听一个端口,其它客户端都通过这个端口和服务端进行通信。
2、每个客户端连接上来,服务端给其一个标识ID。然后向其它所有客户端广播一下有新客户端接入,ID多少。
3、客户端要向客户端发送消息,可以以消息包的形式发送,就是把目的客户端的标识和发送的内容组成一个数据包发往服务器,服务器读取就知道要向哪 个客户端发送数据,然后把内容往目的客户端通道发送
更多追问追答
追问
那么问题来了,如何标识呢?然后标识了以后如何给指定的发送消息呢?
追答
用JAVA NIO,每一个客户端连接上来会有一个channel。你可以按顺序,或用GUID或其它有意义的编码来标识每一个channel.每个channel就是一个客户端,然后new Hashmap(),按键值对的方式把标识和channel存入map中。。
比如有三个客户端1\2\3.
map.put("1", channel1);
map.put("2", channel2);
map.put("3", channel3);
channel3接收到消息,消息头是1,消息体是“hello world”,表示客户端3要向客户端1发送"hello world",那么服务端就取出channel1, map.get("1");然后往channel1里write数据就行了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式