提问者:小点点

如果监听INADDR_ANY,确定客户端连接的实际接口?


在一个场景中,我通过INADDR_ANY监听TCP端口,并获得一个客户端连接,现在想从该连接接受UDP数据包,我如何确定路由到该客户端的接口的实际IP地址,以将UDP套接字绑定到该接口而不是INADDR_ANY?据我所知,我监听套接字的getsockname将返回INADDR_ANY,那么是否有其他套接字API可以提供此信息?或者我必须手动保留一个路由表,我尝试通过连接来解析每个客户端(或者在所有接口上发送ARP,看看哪个接口解析地址?)。


共1个答案

匿名用户

一旦您接受了连接,您就可以使用< code>getsockname函数获得< code>accept返回的新的(已连接的)套接字的本地地址。