Visual Studio C++에서 소켓 응용 프로그램을 만들려고했지만 그럴 수 없습니다. 내가 잘못 뭐하는 거지 ...socket (PF_INET, SOCK_STREAM, 0)이 -1을 반환하는 이유는 무엇입니까?
문제는 int listen_sock = socket(PF_INET,SOCK_STREAM,0)
반환 -1 내가 왜 몰라?
Visual Studio C++에서 소켓 응용 프로그램을 만들려고했지만 그럴 수 없습니다. 내가 잘못 뭐하는 거지 ...socket (PF_INET, SOCK_STREAM, 0)이 -1을 반환하는 이유는 무엇입니까?
문제는 int listen_sock = socket(PF_INET,SOCK_STREAM,0)
반환 -1 내가 왜 몰라?
GetLastError
을 사용하여 오류를 인쇄해야합니다. 나는 당신이 초기화하지 않는 것으로 의심합니다 :
WSADATA wsaData = {0};
WSAStartup(MAKEWORD(2, 2), &wsaData);
WSAGetLastError
은 무엇을 반환합니까? 이 전화를 걸기 전에 WSAStartup
으로 전화 했습니까?
GetLastError()가 아닌'WSAGetLastError()'를 사용해야합니다. –
@Remy Lebeau - TeamB [이 페이지] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms681391.aspx)에 따르면 GetLastError는 WSA와 관련된 오류도 반환합니다. – cnicutar
이것은 구현 세부 사항입니다. 'GetLastError()'와'WSAGetLastError()'는 지금 같은 쓰레드 - 로컬 스토리지를 사용하지만, 항상 미래에는 바뀔 수 있습니다. 모든 WinSock 함수는'GetLastError()'가 아니라'WSAGetLastError()'를 사용하도록 문서화되어 있습니다. 설명서가 사용하는 것을 사용하십시오. 오늘날 어떤 일이 일어나지는 않습니다. –