我正在尝试将 ipv4 应用程序移植到 ipv6,但无法将套接字绑定到 ipv6 地址。
问题就在这里:
err=bind(listening, (sockaddr*)&hint, sizeof(hint));
Run Code Online (Sandbox Code Playgroud)
应该err是 0,但在此代码中它返回 -1。出了什么问题?
SOCKET listening = socket(AF_INET6, SOCK_STREAM, 0);
if (listening == INVALID_SOCKET)
{
cerr << "Can't create a socket! Quitting" << endl;
return;
}
int err;
// Bind the ip address and port to a socket
sockaddr_in6 hint;
hint.sin6_family = AF_INET6;
hint.sin6_flowinfo = 0;
hint.sin6_port = htons(54000);
hint.sin6_addr = in6addr_any;
err=bind(listening, (sockaddr*)&hint, sizeof(hint)); //<======= here
Run Code Online (Sandbox Code Playgroud)