Errore nel componente Socket che (forse) rimane attivo?

di il
1 risposte

Errore nel componente Socket che (forse) rimane attivo?

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.

1 Risposte

  • Re: Errore nel componente Socket che (forse) rimane attivo?

    Ho risolto sostituendo il socket con un semplice PING, che all'epoca che scrissi il codice, non ricordo perchè, non usai perchè mi dava problemi. Ma quali problemi fossero non lo ricordo davvero. Mah! 

    If My.Computer.Network.Ping(mioIP, 2000) Then
Devi accedere o registrarti per scrivere nel forum
1 risposte