문제

내 프로그램에서 소켓을 사용하고 있습니다. 내가 추가했기 때문에 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

도움이 되었기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top