我有一个Visual Studio2008TCP应用程序,其中我使用套接字连接到远程C++服务器。代码基本上看起来像这样:
SOCKET s = socket( AF_INET, SOCK_STREAM, 0 );
addrinfo* ai = getaddrinfo( ... );
connect( s, ai->ai_addr, sizeof( sockaddr_in ) );假设我的本地客户机有多个适配器,我如何知道哪个本地接口是用来建立连接的?
我意识到我可以使用bind()来选择所使用的适配器,我对让系统选择的情况很好奇。
发布于 2011-08-19 02:06:32
您可以使用getsockname来查找地址。
int getsockname(
__in SOCKET s,
__out struct sockaddr *name,
__inout int *namelen
);
struct sockaddr_in sin;
int sinlen = sizeof(sin);
memset(&sin, 0, sizeof(sin));
getsockname(s, (strict sockaddr *)&sin, &sinlen);https://stackoverflow.com/questions/7111958
复制相似问题