これは、よくわからない非同期ソケットのシナリオです...クライアントソケットとサーバーソケットの2つのTcpソケットがあります。サーバーソケットがバインドされ、ポートでリッスンしています。
私のクライアント ソケットはサーバー ソケットに接続します (BeginConnect / EndConnect を使用)。次に、BeginSend() を使用してサーバーにメッセージを送信します。サーバー側では、Receive() や BeginReceive() は行いません。
何が起こるかというと、BeginSend 呼び出しに指定された AsyncCallback が呼び出され、その IAsyncResult が完了したことを通知し、Socket.EndSend() の呼び出しで例外が発生しないということです...
BeginSend 呼び出しが実際にサーバーに何かを送信した場合にのみ、AsyncCallback を呼び出してはならない、または呼び出すべきではないものがありますか (つまり、サーバーがすべてのバイトを受信した後に呼び出されるコールバック)? サーバーで受信が行われなかった場合、sendtimeout の期限が切れた後にコールバックを呼び出すべきではなく、Socket.EndSend への呼び出しで例外が発生しますか?
ありがとう