知道使用哪个适配器进行套接字连接
knowing which adapter is used to make a socket connection
我有一个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()来选择使用的适配器,我很好奇我只是让系统选择的情况。
您可以使用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/C++Unix
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- 如何在 2 台主机之间保持 UDP 套接字连接打开
- Opencv 不适用于套接字连接
- C++通过套接字连接发送矢量
- mbed 套接字连接需要很长时间
- 重用多个请求的相同套接字连接
- C++ Linux 上的套接字连接
- 套接字连接在主功能内部但不在功能内部
- 套接字连接上的缓冲区溢出
- 套接字连接()被误认为是QT connect()
- 返回打开的插座连接/留下套接字连接打开C
- 当试图连接到无法到达的计算机时,C 套接字连接被卡住
- C# 客户端到C++服务器 Tcp 套接字连接错误
- C [UDP]如何跟踪服务器上的所有连接(客户端)套接字连接
- 使用C 安全套接字连接
- 在C 中每分钟之后,如何检查套接字连接
- 正在创建多个TCP套接字连接
- 为什么我不能通过套接字连接android和PC
- 从分离的线程中止套接字连接