ソケット(TCP)に関する質問です。 サーバ(UNIX)とクライアント(WinSock)がソケットで通信しています。 サーバがクライアントに対してwriteでデータを送り、クライアントがrecvでそれを読む処理を作成しました。 サーバでwriteし、すぐにソケットそcloseすると、クライアントではrecvできずにエラーになります。(既に接続が破棄されている。) サーバ側でwriteして、すぐにcloseしている事が原因の様です。 writeとcloseの間に1秒程度の時間をおくと、クライアントはrecvできました。 このように、writeとcloseが連続すると相手がrecvできないケースは当然の事なのでしょうか。 それとも、通常はrecvできるはずであり、他に問題がありそうでしょうか。 同じ経験をした事のある方がの意見なども聞けると助かります。 よろしくお願いします。 |