1
我有一個可以在Mac OS 10.6上正常運行的程序,但在10.8中出現了莫名其妙的失敗。它的要點在於sendto現在返回-1並將errno設置爲EINVAL(22)。出了什麼問題?sendto在Mac OS X上返回EINVAL 10.8
我有一個可以在Mac OS 10.6上正常運行的程序,但在10.8中出現了莫名其妙的失敗。它的要點在於sendto現在返回-1並將errno設置爲EINVAL(22)。出了什麼問題?sendto在Mac OS X上返回EINVAL 10.8
我給sendto的地址來自getaddrinfo的第一個結果。原來,第一個結果現在是一個IPV6結果(使用sockaddr_in6)。發送到OS 10.8(至少現在)似乎只能與sockaddr_in地址一起使用。確保傳遞一個提示的getaddrinfo,說你只需要IPv4地址,即
struct addrinfo hint;
memset(&hint, 0, sizeof(struct addrinfo));
hint.ai_family = AF_INET;
struct addrinfo* result;
int res = getaddrinfo(friendlyHostname, NULL, &hint, &result);