【发布时间】:2016-01-28 12:24:34
【问题描述】:
我有一个应用程序,我想扩展它以始终将数据发布到套接字,这样当关键事件发生在任何想要侦听数据包的自定义应用程序时,都可以处理它们。
我的倾向是通过 localhost 上的 UDP 将数据包从服务器发送到所有已知的客户端,这将涉及客户端将消息发送到已知的服务器地址,例如 127.0.0.1:12345,使用他们自己的地址 127.0.0.1:54321 订阅,并且然后,每次事件发生时,服务器都会向每个活动订阅者发送数据包的副本。
我在这里看到了一些需要解决的问题:
服务器可能在争用,并尝试在
127.0.0.1:12345绑定相同的“已知”服务器端口需要让客户端了解每个发布消息的可用服务器,以便用户可以选择他们有兴趣收听的服务器
服务器需要定期询问每个客户端是否仍在侦听,因为这将是 UDP
必须有更好的方法!有什么办法可以让客户端共享同一个端口(那么就不需要客户端-服务器握手)来编写网络通信?如果我想在 LAN 上扩展它,如何轻松将此信息发布到感兴趣的机器(倾向是多播,但这是最干净的方法,当本地主机上存在部分或所有客户端时,如何使多播工作)?
【问题讨论】:
标签: sockets networking network-programming udp autodiscovery