來源:setsockopt的錯誤WSAEADDRNOTAVAIL
WSADATA WSAData;
SOCKET sock;
if (WSAStartup(MAKEWORD(2,2), &WSAData)!=0) {
printf("\nProblem with WSAStartup\n\n");
return FALSE;
}
if ((sock = WSASocket(AF_INET,SOCK_RAW,IPPROTO_TCP, 0, 0, WSA_FLAG_OVERLAPPED)) == INVALID_SOCKET) {
WSACleanup();
printf("\nProblem with WSASocket\n\n");
return FALSE;
}
int flag = 1;
if (setsockopt(sock,IPPROTO_IP, IP_HDRINCL,(char *)&flag,sizeof(flag)) == SOCKET_ERROR) {
printf("getsockopt failed with error: %u\n\n", WSAGetLastError());
closesocket(sock);
WSACleanup();
return FALSE;
}
每次我在我的程序運行此我得到:
getsockopt failed with error: 10049
10049是WSAEADDRNOTAVAIL錯誤代碼,這意味着「請求的地址不在有效的語境「。
請幫助,我不知道爲什麼我不斷收到此錯誤。
你編譯這個到64位? –
我將它編譯爲win32,並且我想保留它32而不是64. – Ian
您使用的是哪個版本的Windows,編譯器和SDK? – alk