Разорвать / убить TCP-соединение в Windows - PullRequest
7 голосов
/ 05 мая 2009

Я хотел бы посмотреть, как программа реагирует на разрыв соединения. Помимо отключения сетевой карты, есть ли способ разорвать tcp-соединение в Windows без прерывания процесса или потока, которому принадлежат соединения?

Ответы [ 4 ]

7 голосов
/ 05 мая 2009

Самое близкое, что я обнаружил при создании ошибки ОС, - это использовать что-то вроде TcpView , чтобы посмотреть, какие сокеты открыты, и разорвать их. Я не уверен, что именно он делает, чтобы разорвать соединение, но он закрывает его так, чтобы приложение могло его увидеть.

2 голосов
/ 05 мая 2009

TCPView от SysInternals позволяет закрыть соединение (и просмотреть все открытые соединения).

0 голосов
/ 05 мая 2009

Почему бы просто не отключить сетевой кабель?

0 голосов
/ 05 мая 2009

Одна вещь, которую я видел, состояла в том, чтобы сетевой код был написан так, чтобы соединение могло быть разорвано удаленно. Продукт, над которым я когда-то работал, был написан именно так. У нас даже был набор тестов на пытки, которые случайным образом разрывали связи. Продукт должен был быть транзакционным, и было поучительно посмотреть, как он себя вел.

Конечно, мы тогда нашли клиента, чья сеть фактически постоянно разрывала соединения, и были очень рады, что мы так тщательно протестировали.

...