別のソフトウェアコンポーネントの機能をテストするためのPythonテストプログラムがあります。後者をテスト対象コンポーネント(COT)と呼びましょう。Pythonテストプログラムは、永続的なTCP接続を介してCOTに接続されます。Pythonプログラムは、このためにPythonソケットAPIを使用しています。ここで、物理リンクの障害をシミュレートするために、Pythonプログラムでソケットをシャットダウンしますが、適切に切断する必要はありません。SYN
つまり、TCP //を含め、TCPチャネルで何も送信されないようにしACK
ますFIN
。ソケットをサイレントにしたいだけです。これ以上リモートパケットに応答してはなりません。
close
ソケットを呼び出すとTCPFIN
パケットがリモートエンドに送信されるため、これは見た目ほど簡単ではありません。(優雅な切断)。では、パケットを送信せずにソケットを強制終了するにはどうすればよいですか?
他のコンポーネントへの他の接続を維持する必要があるため、Pythonプログラム自体をシャットダウンできません。詳細については、ソケットは別のスレッドで実行されます。だから突然スレッドを殺そうと思ったのですが、これも簡単ではありません。(Pythonでスレッドを強制終了する方法はありますか?)
何か案は?