知道使用哪个适配器来建立套接字连接
我有一个 Visual Studio 2008 C++ 应用程序,我使用套接字连接到远程 TCP 服务器。代码基本上如下所示:
SOCKET s = socket( AF_INET, SOCK_STREAM, 0 );
addrinfo* ai = getaddrinfo( ... );
connect( s, ai->ai_addr, sizeof( sockaddr_in ) );
假设我的本地客户端有多个适配器,我如何判断使用哪个本地接口进行连接?
我意识到我可以使用 bind() 来选择使用的适配器,我很好奇我只是让系统选择的情况。
I have a Visual Studio 2008 C++ application where I connect to a remote TCP server using a socket. The code looks basically like this:
SOCKET s = socket( AF_INET, SOCK_STREAM, 0 );
addrinfo* ai = getaddrinfo( ... );
connect( s, ai->ai_addr, sizeof( sockaddr_in ) );
Assuming my local client has multiple adapters, how can I tell which local interface was used to make the connection?
I realize I can use bind() to pick the adapter used, I'm curious about the case where I just let the system choose.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
getsockname
查找地址。You can use
getsockname
to find out the address.