クライアントが C++/winapi で、サーバーが C#/.net のクライアント サーバー プログラムを作成しています。
クライアントには、サーバーから読み取るループがあります(呼び出しスレッドをブロックする可能性があります [denote t1] 、これは私にとっては問題ありません)。また、タイムアウトで Event オブジェクトを待機する別のスレッド [t2 を示す] もあります。
タイムアウトに達した場合 (そしてイベントがまだシングル化されていない場合)、t2 スレッドは同じソケットに (正確にはバイト単位で)書き込みます。
私が抱えている問題は、ソケットが全二重ではなかったかのように、t1 での読み取りが返されるまで書き込みが返されないように見えることです (一部の正当なシナリオでは決して発生しません)。
PS : ソケットは AF_INET/ SOCK_STREAM であり、ソケット IO に Readfile と WriteFile を使用しています。
ありがとう。