自定义HTTP服务器在随机IP中侦听

时间:2016-08-24 14:49:32

标签: http boost server multicast

我正在为一个只在局域网中使用的应用程序开发一个带有Boost的HTTP服务器。问题是没有人能够通过http服务器知道计算机的IP(没有机会静态),所以我在考虑让HTTP服务器监听多播地址以便事先了解它。客户端将连接到该多播地址,他们不需要知道服务器IP。

我的问题:还有其他更优雅的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

另一种方法是让你的TCP / HTTP服务器bind到端口0并让内核为你分配端口。然后调用getsockname找出分配的端口。

之后,您的服务器每隔几秒就会开始将UDP数据报发送到预定义的多播地址。每个数据报都包含服务器的名称,地址和端口。

客户端加入组播组,接收数据报并发现服务器的名称,地址和端口并连接。

或者,您的服务器可以监听预定义的多播组,而不是每隔几秒钟发送一次数据报。客户端向组发送多播数据报以查找服务器的位置。服务器使用其名称,地址和端口回复该数据报。这与DNS service discovery with multicast的工作方式类似。