

お世話になります。  
サーバと複数クライアントの接続構成で  
MFCでソケット通信を作成しております

サーバ(Listen側)がクライアント(Connect側)からのOnCloseで  
ソケット通信を終了しているのですが  
たまにOnCloseコールバックが発生しない場合があります

考えられる原因などありましたら  
ご教授頂けますでしょうか？


CC BY-SA 4.0
2019-04-19T00:56:00.430
54305
2020-10-20T15:01:40.157
23161
question
mfc
MFC CAsyncSocket OnCloseが発生しない


相手側が[`CAsyncSocket::ShutDown`](https://docs.microsoft.com/ja-
jp/cpp/mfc/reference/casyncsocket-
class?view=vs-2019#shutdown)を呼び出し、その内容が正しく受信できて初めて[`CAsyncSocket::OnClose`](https://docs.microsoft.com/ja-
jp/cpp/mfc/reference/casyncsocket-
class?view=vs-2019#onclose)が発生するため、呼び出していなかったり、呼び出し終わる前に閉じられてしまったり、通信障害で送信されなかったり、様々な原因が考えられます。

Keep-Aliveを行うことで、相手側の不在を検出する手が使えるかもしれません。


CC BY-SA 4.0
2019-04-19T03:33:48.867
54309
2019-04-19T03:33:48.867
4236
54305
answer