gpt4 book ai didi

c++ - 知道哪个适配器用于建立套接字连接

转载 作者:搜寻专家 更新时间:2023-10-31 01:56:27 27 4
gpt4 key购买 nike

我有一个 Visual Studio 2008 C++ 应用程序,我在其中使用套接字连接到远程 TCP 服务器。代码基本上是这样的:

SOCKET s = socket( AF_INET, SOCK_STREAM, 0 );
addrinfo* ai = getaddrinfo( ... );
connect( s, ai->ai_addr, sizeof( sockaddr_in ) );

假设我的本地客户端有多个适配器,我如何知道使用哪个本地接口(interface)建立连接?

我意识到我可以使用 bind() 来选择使用的适配器,我很好奇我只是让系统选择的情况。

最佳答案

您可以使用 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);

关于c++ - 知道哪个适配器用于建立套接字连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7111958/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com