【发布时间】:2014-03-22 20:05:55
【问题描述】:
我正在开发 Qt 上的服务器客户端项目。服务器在具有多个网络接口的机器上运行。该设计使得客户端将自动发现服务器。即客户端将其IP 广播到网络,服务器获取该消息并发送回服务器的IP。现在的问题是,当我尝试获取服务器中的 IP 时,IP 超过 1 个。如何获取服务器收到消息的接口IP?
【问题讨论】:
-
为什么需要知道服务器接口的IP?如果您在多个接口上从客户端获得广播,只需响应所有接口。客户端需要过滤掉多个响应,然后只选择一个。
-
您几乎不需要通过网络发送自己的 IP 地址。每个 IP 数据包都已经包含一个可用的源地址。对方只需要getpeername或recvfrom即可。
-
@unwind 服务器运行在一台有多个网络的机器上。客户端需要一个有效的 IP(客户端网络中的 IP)来进行通信以获取更多数据。
-
@Griffin 是的,我明白了。但是,如果服务器在其多个接口上看到来自客户端的广播,则证明使用接收到的 IP 在每个接口上都有连接,因此服务器可以响应这些接口。我仍然没有得到我所缺少的东西。 :/ 也许你可以编辑你的问题来澄清它。