我有一個用於測試另一個軟件組件的功能的Python測試程序,我們稱後者爲被測組件(COT)。 Python測試程序通過持久的TCP連接連接到COT。 Python程序正在爲此使用Python套接字API。 現在爲了模擬物理鏈接的故障,我希望Python程序關閉套接字,但不能正確斷開連接。 也就是說我不想再在TCP通道上發送任何內容,包括任何TCP SYN
/ACK
/FIN
。我只想讓套接字靜音。它不能再響應遠程數據包。Python:如何突然斷開套接字而沒有正確關閉套接字
這並不像看起來那麼容易,因爲在套接字上調用close
會將TCP FIN
數據包發送到遠程端。 (優雅斷開)。 那麼我怎樣才能殺死套接字而不發送任何數據包呢?
我無法關閉Python程序本身,因爲它需要維護與其他組件的其他連接。 有關信息,套接字在單獨的線程中運行。所以我想到突然殺死線程,但這也不是那麼容易。 (Is there any way to kill a Thread in Python?)
任何想法?
尼古拉,謝謝,這就是我懷疑的。順便說一句,我的意思是FIN而不是RST。更正了這個問題。 – Scrontch
@Scrontch這個答案不正確。 – EJP