私は別のソフトウェアコンポーネントの機能をテストするためのPythonテストプログラムを用意しています。後者をテスト対象コンポーネント(COT)としましょう。 Pythonテストプログラムは、固定TCP接続を介してCOTに接続されています。 PythonプログラムはPythonソケットAPIを使用しています。 物理リンクの障害をシミュレートするために、私はPythonプログラムでソケットをシャットダウンしたいが、適切に切断する必要はない。 すなわち、私は何もTCPチャネルに何も送ろうとしません.SYN
/ACK
/FIN
を含みます。ソケットを静かにしたいだけです。それはもはやリモートパケットに応答してはなりません。Python:ソケットを適切に閉じることなく突然切断する方法
ソケット上のclose
を呼び出すと、リモート側にTCP FIN
パケットが送信されるので、これはそう簡単ではありません。 (優雅な切断)。 それでは、パケットを送信せずにソケットを強制終了できますか?
他のコンポーネントへの他の接続を維持する必要があるため、Pythonプログラム自体をシャットダウンできません。 詳細については、ソケットは別のスレッドで実行されます。だから私は突然スレッドを殺すことを考えましたが、これも簡単ではありません。 (Is there any way to kill a Thread in Python?)
アイデア?
ニコライ、ありがとう、それは私が疑ったものです。 Btw、私はRSTの代わりにFINを意味しました。質問を修正しました。 – Scrontch
@Scrontchこの回答は正しくありません。 – EJP