Tcp Socket 转发

初_凉 2015-05-19 05:48:30
小弟正在做一个项目,服务器与多个客服端进行TCP通信,现在实现了各个客户端与服务器之间的互相通信,但无法实现一个客户端发送消息给服务器,服务器将该消息转发给另一个客户端。敢问给位如何实现?如何通过服务器实现一个客户端发送消息给另一个指定的客户端????希望能给出Demo代码,主要是服务器端的
...全文
349 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Vergil_c 2015-05-23
  • 打赏
  • 举报
回复
引用 3 楼 mengxieshi 的回复:
[quote=引用 1 楼 alan19931103 的回复:] 客户端发送的消息代上目标客户端,服务器转发一下就好了
就是带上目标客户端这一点不太了解,可以给一个简单的Demo吗?[/quote] 可以建个map,放客户端唯一标识的名字和socket,然后发送的时候在消息前面加上发送客户端的名字和接收客户端的名字, 服务器收到后,提取下字符串,然后把map遍历,找到接收客户端的socket,在发过去,
engourdi 2015-05-22
  • 打赏
  • 举报
回复
服务器注册一个客户端列表,想法给谁就发给谁咯
biggun_love 2015-05-22
  • 打赏
  • 举报
回复
如果客户端连接不多用socket为每个客户端开线程,如果大量连接可以用socketchannel
__威少__ 2015-05-21
  • 打赏
  • 举报
回复
服务端把收到的消息推送个到不同的消息队列,消息队列使用不同客户端来标识,不同的客户端到自己的消息队列阻塞访问,就获取到相应的消息了
O_森_O 2015-05-21
  • 打赏
  • 举报
回复
那它既然是要发给指定的C,那么这个C一定是唯一可标识的,比如QQ里面,是用QQ号来标识的。所以既然A要发消息给C,那么它一定知道是那个C的,所以它向服务器发的请求里面应该包含C的标识信息。 作为服务器,应该能够知道当前有哪些客户端是连接的,或者至少应该知道如何通过标识定位到客户端,然后通过C请求里面包含的A的标识信息定为到A,然后将消息转发给A
初_凉 2015-05-21
  • 打赏
  • 举报
回复
引用 4 楼 u013161087 的回复:
有点疑问: 我理解的意思是:A发送消息给B,然后B转发给C 这里面A是客户端,B是服务端,C是什么?服务端?客户端?如果C是客户端可以把B接收到的消息放到一个阻塞队列里面,然后C连上之后去队列里面取消息就可以了。
C是客户端,关键是有可能有好多个C,如何区分,发送给指定的C
alan19931103 2015-05-21
  • 打赏
  • 举报
回复
引用 2 楼 mengxieshi 的回复:
就是带上目标客户端这一点不太了解,可以给一个简单的Demo吗?
你的每个客户端肯定是不一样的啊,比如有个id字段唯一的表示一个客户端。 客户端发送的消息(tar_id,mes,sou_id); 服务器转发(mes,sou_id)到tar_id; 目标服务器可以读到信息和源客户端啊 你就想想电子邮件的样子,大概就是那个意思
糖几颗的 2015-05-21
  • 打赏
  • 举报
回复
首先.. 你有每个客户端的连接么... 把每个客户端的连接封装成session. 这样好处理一点.. 然后把session放到一个管理器里面.. 可以让你随时提取... 收到一个客户端的消息, 然后从上面说的管理器中, 取出其他客户端的连接挨个发消息就行了....
初_凉 2015-05-20
  • 打赏
  • 举报
回复
引用 1 楼 alan19931103 的回复:
客户端发送的消息代上目标客户端,服务器转发一下就好了
就是带上目标客户端这一点不太了解,可以给一个简单的Demo吗?
初_凉 2015-05-20
  • 打赏
  • 举报
回复
就是带上目标客户端这一点不太了解,可以给一个简单的Demo吗?
朱容赋 2015-05-20
  • 打赏
  • 举报
回复
有点疑问: 我理解的意思是:A发送消息给B,然后B转发给C 这里面A是客户端,B是服务端,C是什么?服务端?客户端?如果C是客户端可以把B接收到的消息放到一个阻塞队列里面,然后C连上之后去队列里面取消息就可以了。
alan19931103 2015-05-19
  • 打赏
  • 举报
回复
客户端发送的消息代上目标客户端,服务器转发一下就好了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧