У меня есть тестовая программа Python для тестирования функций другого программного компонента, позвольте последнему тестировать компонент (COT).
Программа тестирования Python подключается к COT через постоянное TCP-соединение.
Программа Python использует для этого API сокетов Python.
Теперь, чтобы имитировать отказ физической ссылки, я хотел бы, чтобы программа Python закрывала сокет, но не отключая его соответствующим образом.
То есть я больше не хочу, чтобы что-то было отправлено по каналу TCP, включая TCP SYN
/ACK
/FIN
. Я просто хочу, чтобы сокет молчал. Он больше не должен отвечать на удаленные пакеты.
Это не так просто, как кажется, поскольку вызов close
в сокете отправит TCP FIN
пакеты на удаленный конец. (изящное отключение).
Итак, как я могу убить сокет без отправки каких-либо пакетов?
Я не могу закрыть программу Python, потому что ей нужно поддерживать другие подключения к другим компонентам. Для информации, сокет работает в отдельном потоке. Поэтому я подумал о внезапном убийстве потока, но это тоже не так просто. (Есть ли способ убить поток в Python?)
Любые идеи?