1. ホーム
  2. python

[解決済み] socket.shutdown と socket.close の比較

2022-05-11 12:21:38

質問

最近、次のようなコードを見かけました(もちろん、sockはソケット・オブジェクトです)。

sock.shutdown(socket.SHUT_RDWR)
sock.close()

ソケットのshutdownを呼び出してから閉じるのは、いったい何のためなのでしょうか? もし違いがあるとすれば、このソケットはノンブロッキングIOに使用されていることです。

どのように解決するのですか?

以下はその一例です。 説明 :

ソケットが不要になったら 呼び出したプログラムは、その クローズサブルーチンを適用することで をソケットディスクリプタに設定する。もし 信頼性の高い配信ソケットは、データ クローズされたときに、それに関連する の場合、システムは引き続き試行する。 データ転送を行う。ただし、データが を破棄します。 を表示します。アプリケーションは プログラムには、保留中のものを使用する必要がありません。 を使用すると、シャットダウンすることができます。 ソケットのサブルーチンを実行する前に 閉じる。