Windows 소켓 WSACLEANUP C ++
-
19-09-2019 - |
문제
내 프로그램에서 소켓을 사용하고 있습니다. 내가 추가했기 때문에 WSAStartup
. 내 응용 프로그램은 잘 실행됩니다 (정지 할 신호가 표시 될 때까지 항상 올라갑니다). 신호를 얻은 후에는 TE 문제를 중지합니다. WSACleanup
내 프로그램 끝에 기능이 충돌하고 제거하면 잘 끝납니다.
감사
해결책 2
응용 프로그램은 단지 소켓 이상을 사용하고 있습니다. Microsoft 참조 Sais는 wsacleanup을 사용해야한다는 Onevery wsastartup이라는 SAIS에도 불구하고, 이것은 사실이 아니며 시스템은 그에 대한 보상을 공개하고 있습니다.
다른 팁
이것은 내 프로젝트 중 하나에서 발췌 한 것입니다.
초기화 :
#if defined(WIN32)
WSADATA wsaData;
WORD wVersionRequested = MAKEWORD(2, 0);
if (WSAStartup(wVersionRequested, &wsaData) != 0) {
LOG("WSAStartup() error");
return false;
}
#endif
serv_socket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
...
대청소:
#if defined(WIN32)
/* winsock requires a special function for sockets */
shutdown(serv_socket, SD_BOTH);
closesocket(serv_socket);
/* clean up winsock */
WSACleanup();
#else
close(serv_socket);
#endif
도움이 되었기를 바랍니다.
제휴하지 않습니다 StackOverflow