1

私が使用しているPythonスクリプトに問題があるかどうかはわかりません。基本的に、スレッドを生成し、それぞれが tcp 接続を作成します。スクリプトが終了し、まだ機能しているスレッドがあるかどうかも確認します。すべてのスレッドが False を返します (アクティブではありません)。

問題は、チェックした場合 (nirsoft の CurPorts を使用)、一部の tcp 接続 (場合によっては 1 から 9 の間) がまだ確立された状態にあり、場合によっては送信済みの状態にあることです。それは問題ですか?それらは最終的には消えますが、数分後には消えます。それはPythonの側の問題ですか、それとも基本的なWindowsの手順ですか?

役に立ったら、S.close でソケットを閉じます。私はデーモン スレッドを使用しておらず、単純なスレッドのみを使用しており、すべてのスレッドが終了するまで待ちます。(t.join())

心配するか、そのままにしておくべきかを知る必要があります。その理由は、彼らが一時的なポート番号を使い果たしていることと、それが私からリソースを保持しているかどうかわからないことです。

親切な対応をいただければ幸いです。

最終編集: S.close() を送信する前に S.shutdown() を使用しますが、エラーチェックは行いませんが、試してみる以外にそれを行う方法がわかりません:

4

1 に答える 1

1

簡単な答えは、TCP 接続を閉じる前に適切にシャットダウンする必要があるということです。

シャットダウンを呼び出してそこを閉じる方法の詳細があります:

于 2013-06-17T12:15:46.520 に答える