求解:java nio方式完成socket通信可否实现服务端向某个固定的客户端发送消息并接受客户端返回的结果?

发布于 2021-11-27 09:13:47 字数 331 浏览 735 评论 10

现在有这样的需求:多个客户端与服务端进行socket通信,根据业务需求,当满足某个条件的时候,服务端发送的消息只让指定的客户端接受这个消息,而其他客户端不能接受这个消息,举个例子,比如现在有ip为192.168.1.15、192.168.1.16、192.168.1.17的三个客户端连接到服务端,而当满足业务条件A时,服务端发送的消息只能让ip为192.168.1.16的客户端接收到,并返回响应结果给服务端,而这条消息不向另外两个客户端发送。

这样的需求用java NIO可否实现,如果可以实现,具体该怎么实现?如果不能实现,那么有没有别的方式可以实现这样的通信需求?

望各位达人指点!小弟不胜感激。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

多彩岁月 2021-11-29 07:20:54

引用来自“purely”的评论

通过ip,获取对应的channel,就可以向指定的channel发送了。

柠檬 2021-11-29 07:13:32

通过ip,获取对应的channel,就可以向指定的channel发送了。

夜无邪 2021-11-29 07:05:21

NIO只是一种"轮询"方式,底层还是用的TCP/IP模型.AIO也是一样的.

这些都只是实现方式而已,跟你说的,完全不是一个事.

只要你维持会话,你自然可以选择发送目标.

酷到爆炸 2021-11-29 07:01:25

引用来自“mingshun”的评论

跟哪个IP连接就发给这个IP对应的机器咯,这个问题是不是问得有点奇怪啊?向与A机器建立的socket发送数据,B机器能收到?根据条件判断要发给哪个机器,就向与哪个机器建立的socket发数据就行啦!

小情绪 2021-11-29 06:39:47

引用来自“ksfzhaohui”的评论

只要服务器端维护了连接列表,想往哪个客户端发送,从列表里面筛选就是了,至于要不要用nio,完全看你的需求,socket连接也能实现

水水月牙 2021-11-29 05:56:48

跟哪个IP连接就发给这个IP对应的机器咯,这个问题是不是问得有点奇怪啊?向与A机器建立的socket发送数据,B机器能收到?根据条件判断要发给哪个机器,就向与哪个机器建立的socket发数据就行啦!

冬天旳寂寞 2021-11-29 05:56:14

楼上正解。不过服务端偷懒一点就全发,客户端去判断是不是给自己的消息,不是就抛弃。当然这是最糟糕的设计,安全,流量都会有问题。

冷清清 2021-11-28 21:14:45

只要服务器端维护了连接列表,想往哪个客户端发送,从列表里面筛选就是了,至于要不要用nio,完全看你的需求,socket连接也能实现

坏尐絯 2021-11-28 20:07:41

引用来自“若水191”的评论

首先是socket通信问题,其次才是nio问题,通信是双向的。往哪个客户端发消息,服务器端是主动的,这问题基本都不存在

苍暮颜 2021-11-28 14:08:45

首先是socket通信问题,其次才是nio问题,通信是双向的。往哪个客户端发消息,服务器端是主动的,这问题基本都不存在

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文