如果在服务器发现期间客户端的端口已被占用,如何更改服务器中的UDP广播端口?

时间:2019-04-03 07:47:29

标签: java android udp broadcast service-discovery

我正在尝试在PC(服务器)和android手机之间实现服务器发现,并通过公用端口(8888)广播来自服务器的消息。 我想知道如果客户端中已经占用了端口该怎么办,如何更改两个端口上的端口,以便客户端接收广播消息? 我应该使用任何特定的网络发现协议(UPnP或类似协议)吗?

抱歉,这是一个基本问题,但是我对网络编程不熟悉。我将根据您的观察来编辑我的问题。

我只能找到这个,但是没有答案: How to listen for a UDP broadcast when the default port could be already taken

1 个答案:

答案 0 :(得分:0)

理想情况下,使用现有的服务发现协议(例如SSDP)。您可能可以从https://github.com/resourcepool/ssdp-client

进行构建,有关Android的一些先前工作。

使用SSDP的原因:

  • 由于端口已正确保留,因此您不会遇到任何冲突。
  • 它使用多播而不是广播。对于您的网络来说,这可能无关紧要,但是IPv6不支持广播,因此已经兼容。
  • 这是一个标准协议,因此网络管理员可以知道它是什么并且可以处理流量。