標準のクライアントサーバーの状況があります。クライアントはサーバーに接続し、サーバーはselect()
(またはそれに準ずるもの)を使用して複数のクライアント接続を管理します。すべてがPOSIXシステムレベルのネットワーキングAPIを使用します。TCP接続を閉じる前にメッセージを送信する方法[POSIX]
時々、サーバーは接続を閉じる必要があります。サーバーがソケットを閉じる前にクライアントにメッセージを送信し、クライアントに接続が閉じられた理由を通知できるようにします。
これを行うにはどうすればよいですか?
単純な方法では、単にサーバーにメッセージを書き込み、その後閉じる(close()
)が、クライアントが接続が閉じられたために書き込みエラーが発生する可能性があるため、問題があると思いますクライアントがサーバーによって書き込まれた最終メッセージを読む機会を得る前に、サーバーを起動します。
この場合、またはすべてが読み取られるまでクライアントが書き込みエラーを受け取らないことを確認できますか?
良い方法がありますか?
可能であれば、私はPOSIX仕様のみに基づいたソリューションを好むでしょう。
クール、それは意味があります。 –