【发布时间】:2020-01-03 07:11:18
【问题描述】:
当我们将一个 UDP 服务器套接字(Ip / 端口)绑定到一个特殊的 IP 地址 INADDR_ANY - 系统中所有可用的接口都将用于端口 PORT。
现在实际上我需要在客户端连接时找到接口的 MTU - 所以我需要找到客户端连接到的接口详细信息。
我尝试使用getsockname API,但它返回“0.0.0.0”。如何获取客户端连接的接口的实际 IP?
【问题讨论】:
-
你无法从套接字中获取它,因为套接字没有一个,也没有“客户端连接”。但是,如果您的系统支持它,您可能能够获取传入 数据报的目标地址,。
-
您可以枚举所有可用的接口,获取每个接口的 MTU,然后使用一个看起来合适的接口(可能是最小的接口,具体取决于您的用例)。
标签: c++ linux networking udp