我有一个 Python 测试程序,用于测试另一个软件组件的功能,我们将后者称为被测组件 (COT)。Python 测试程序通过持久的 TCP 连接连接到 COT。Python 程序为此使用 Python 套接字 API。现在为了模拟物理链接的故障,我想让 Python 程序关闭套接字,但没有适当地断开连接。即我不想再在 TCP 通道上发送任何东西,包括任何 TCP SYN
/ ACK
/ FIN
。我只是想让插座安静下来。它必须不再响应远程数据包。
这并不像看起来那么容易,因为调用close
套接字会将 TCPFIN
数据包发送到远程端。(优雅断开连接)。那么我怎样才能在不发送任何数据包的情况下杀死套接字呢?
我无法关闭 Python 程序本身,因为它需要维护与其他组件的其他连接。有关信息,套接字在单独的线程中运行。所以我想到了突然杀死线程,但这也不是那么容易。(有什么方法可以杀死 Python 中的线程吗?)
有任何想法吗?