質問: お世話になります。 サーバと複数クライアントの接続構成で MFCでソケット通信を作成しております サーバ(Listen側)がクライアント(Connect側)からのOnCloseで ソケット通信を終了しているのですが たまにOnCloseコールバックが発生しない場合があります 考えられる原因などありましたら ご教授頂けますでしょうか?
回答: 相手側が`CAsyncSocket::ShutDown`を呼び出し、その内容が正しく受信できて初めて`CAsyncSocket::OnClose`が発生するため、呼び出していなかったり、呼び出し終わる前に閉じられてしまったり、通信障害で送信されなかったり、様々な原因が考えられます。 Keep-Aliveを行うことで、相手側の不在を検出する手が使えるかもしれません。