Con questo codice testo se risponde un indirizzo in una rete VPN entro 2 secondi (2000 ms)
 Sub Test()
 	Dim osocket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
 	Dim success As Boolean
 	Dim result As IAsyncResult
 	result = osocket.BeginConnect(mioIP, mPorta, New AsyncCallback(AddressOf osocket.EndConnect), osocket)
 	success = result.AsyncWaitHandle.WaitOne(2000, True)
 	If success Then
 		MsgBox("ok")
 	End if
 End Sub
 Se il test ha successo, tutto bene. Il problema nasce se il test non ha successo, nel senso che dopo un bel po che la routine è terminata, mi si apre la finestra “Socket.cs”, con il codice scritto in C e mi mostra l'errore seguente:
System.Net.Sockets.SocketException: 'Impossibile stabilire la connessione. 
Risposta non corretta della parte connessa dopo l'intervallo di tempo oppure 
mancata risposta dall'host collegato 94.101.xx.xxx'
Nn sono un programmatore espertoe credo che in effetti anche se io imposto quel tempo di 2000 ms in realtà lui continua a testare. Ma come posso fare a non far uscire questo errore, nel senso che una volta uscito dalla Sub vorrei che venisse eliminato qualsiasi processo in corso?
Ho provato anche a usare oSocket.close nella sub ma in quel caso la finestra Socket.cs  mi dà l'errore che non trova piu il socket…
Spero di essermi fatto capire.