http - 监听随机 IP 的自定义 HTTP 服务器

标签 http boost server multicast

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

我的问题:有没有其他方法可以更优雅地做到这一点?

谢谢!

最佳答案

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

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

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


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

关于http - 监听随机 IP 的自定义 HTTP 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39126613/

相关文章:

java - 如何将 POST 表单数据从 HTML 传递到 Java Rest Api

c# - 如何从这个陌生的域中获取 Cookie?

c++ - 具有两种类型节点的图

dns - 为什么我会收到 SOA 挖掘响应?

python - Python 中的套接字问题

html - 使用视频标签播放 m3u8 视频

ruby-on-rails - 如何在 Rails 应用程序的 mailgun 消息 api 中检索存储的消息

c++ - 如何将有向图(邻接表)传递给 Dijkstra 算法 boost 以找到最短路径?

c++ - 错误是boost shared_ptr和类继承

C - 在服务器和客户端之间创建无限套接字连接 (Linux)