Domanda

Vorrei vedere come risponde un programma quando la sua connessione è interrotta. Oltre a disabilitare la scheda di rete, c'è un modo per interrompere una connessione tcp in Windows senza uccidere il processo o il thread che possiede le connessioni?

È stato utile?

Soluzione

La cosa più vicina che ho trovato per generare un errore del sistema operativo è usare qualcosa come TcpView per vedere quali socket sono aperti e separarli. Non sono sicuro di cosa faccia esattamente per interrompere la connessione, ma la chiude in un modo che un'applicazione può vedere.

Altri suggerimenti

TCPView di SysInternals ti consente di chiudere una connessione (e vedere tutte le connessioni aperte).

Una cosa che ho visto fare è avere il codice di rete scritto in modo tale che una connessione possa essere interrotta da remoto. Un prodotto su cui una volta ho lavorato è stato scritto in questo modo. Abbiamo anche fatto una serie di test di tortura che avrebbero interrotto casualmente i collegamenti. Il prodotto doveva essere transazionale ed è stato istruttivo vedere come si è comportato.

Naturalmente, abbiamo quindi trovato un cliente la cui rete interrompeva continuamente le connessioni e siamo stati molto contenti di averlo testato così duramente.

Perché non semplicemente scollegare il cavo di rete?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top