私が作成した単純なクライアントサーバープログラムがありますが、主な問題は、クライアントとサーバーの間で接続が確立されると、クライアントがプログラムを閉じると、サーバーが最後のメッセージを繰り返し実行し、それが時々大きな問題を引き起こすことです。したがって、SOCKET 構造の状態を取得するために呼び出すことができる関数があれば、クライアントがプログラムを閉じると、サーバーは停止することがわかります。不良ソケットの関数から何を探すかが必要なだけです。ちなみに、私はこのプログラムを Win32 c で書いています。if(mySocket==SOCKET_ERROR) を試しましたが、うまくいかないようでした...間違って使用しない限り。ネットワーキングを始めたばかりです。
if(!sockServer.RecvData( recMessage, STRLEN )){return 0;}
// where
bool Socket::RecvData( char *buffer, int size )
{
int i = recv( mySocket, buffer, size, 0 );
if(!i){return false;}
buffer[i] = '\0';
return true;
} //this isn't working