Problemi con nuova sessione di cominucazione vbnet

di
Anonimizzato2482
il
3 risposte

Problemi con nuova sessione di cominucazione vbnet

Salve a tutti,
non vi nascondo che a causa del mio problema mi sto girando un po di forum.
Il mio problema è questo e affinche posse spiegarmi meglio inserisco un pezzo di codice

Module clientudp

Public udpclient As New udpclient

Public Sub onclientudp(ByRef temp As String)

udpclient.Connect("192.168.1.28", 1600)

Dim SendBytes As Byte() =
Encoding.ASCII.GetBytes(temp)

udpclient.Send(SendBytes, SendBytes.Length)

End Sub

Public Sub offclientudp1()

udpclient.Close()

udpclient = Nothing

End Sub

End Module

Il problema che riscontro è che utilizzando il modulo per generare una nuova
sessione di comunicazione (nel caso in cui quella precedente ,ad esempio
causa mancanza rete, cessi) mi compare oggetto nn referenziato,e questo lo
capisco avendo inizialmente dichiarato l'oggetto come public all'inizio del
modulo quindi andando a richiamare la procedura onclientudp vado a lavorare
su un oggetto posto a Nothing.Ma purtroppo nn ho alternative perchè non
posso dichiarare l'oggetto udpclient all'interno della procedura onclientudp
altrimenti andrebbe a succedere che ad ogni richiamata della procedura (cioè
ogni qual volta devo spedire dati all' host remoto)si verrebbe a ganerare
una nuova sessione di comunicazione,quindi mi verrebbe assegnata una nuova
porta e ciò è causa di rallentamento.Come posso svincolarmi da tutto ciò.Le
sto provando tutte ma senza risultati

Grazie Nicola

3 Risposte

  • Re: Problemi con nuova sessione di cominucazione vbnet

    Ciao,

    ma senti all'inizio del codice della sub onclientudp,
    non puoi controllare che l'oggetto udpclient non sia nothing?
    altrimenti lo ricrei?

    Ciao

    A volte basta un solo carattere sbagliato nel codice sorgente per mettere in crisi un' intera applicazione...
  • Re: Problemi con nuova sessione di cominucazione vbnet

    Ciao toky
    poi ieri dopo l'invio del messaggio ho trovato un soluzione.
    Ti faccio vedere come:

    Module CLIENTUDP
    Public Udpclient As Udpclient
    Private flag As Boolean = True
    Public Sub onclientudp(ByRef OutPacket() As Byte)
    If flag = True Then
    Udpclient = New Udpclient
    flag = False
    End If
    Udpclient.Connect("85.35.127.228", 1600)
    Udpclient.Send(OutPacket, OutPacket.Length)
    End Sub
    Public Sub offclientudp()
    Udpclient.Close()
    Udpclient = Nothing
    flag = True
    End Sub
    End Module

    Grazie per il tuo intervento
    Ciao Nicola
  • Re: Problemi con nuova sessione di cominucazione vbnet

    , ciao

    A volte basta un solo carattere sbagliato nel codice sorgente per mettere in crisi un' intera applicazione...
Devi accedere o registrarti per scrivere nel forum
3 risposte