我有一个用于测试另一个软件组件的功能的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