假设我们的客户端应用程序如下所示:
WSADATA wsa_data;
int ret;
SOCKET sock;
ret = WSAStartup (MAKEWORD (2, 2), &wsa_data);
if (ret ==0) {
sock = socket (AF_INET6, SOCK_DGRAM, IPROTO_UDP);
}
什么时候sock == INVALID_SOCKET
和WSAGetLastError()
会返回WSAEAFNOSUPPORT
微软对socket()
函数的文档表示,它可以在以下情况下返回WSAEAFNOSUPPORT
:
不支持指定的地址系列。
我已经看到,如果我显式地为给定的协议传递一个错误的地址家族,那么这个错误主要发生。
是否有可能OS本身不支持地址系列(即系统本身没有配置地址家族),并且在socket()
调用期间会出现此错误?
如果是,为什么?在什么情况下?如何补救呢?
发布于 2022-11-24 02:59:37
基本传输提供者的示例包括基本协议栈(如TCP/IP或IPX/SPX )。。32.安装时的dll。
调用套接字或WSASocket触发器的应用程序,Ws2_32.dll使用标准的Microsoft动态库加载机制加载提供程序DLL,然后调用WSPStartup和WSPSocket。
https://stackoverflow.com/questions/74550277
复制相似问题