プログラムでソケットを使用しています。を追加したためWSAStartup
。私のアプリケーションは正常に動作します(停止のシグナルを受け取るまでは常に稼働しています)。WSACleanup
シグナルを受け取った後、プログラムの最後に関数を書くとクラッシュし、削除すると正常に終了するという問題が止まります。
ありがとう
プログラムでソケットを使用しています。を追加したためWSAStartup
。私のアプリケーションは正常に動作します(停止のシグナルを受け取るまでは常に稼働しています)。WSACleanup
シグナルを受け取った後、プログラムの最後に関数を書くとクラッシュし、削除すると正常に終了するという問題が止まります。
ありがとう
これは私のプロジェクトの1つからの抜粋です。
初期化:
#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
お役に立てれば。
解決できず、問題を見つけることができませんでした。アプリケーションは単なるソケット以上のものを使用しています。Microsoftのリファレンスによると、WSAStartupはWSACleanupを使用する必要があるとのことですが、これは真実ではなく、システムはそれに関してリリースしています。