Oppure

Loading
26/08/09 4:15
muteblaster
ho un winsock su protocollo udp.....quando la connessione ad internet viene meno e poi si ripristina il winsock in bind non riinizia a riceve i dati nuovamente e sono costretto a riavviare il programma perche' torni a funzionare.......
mi e' stato detto di reinizializzare il winsock.....
ma come si fa'?.......

aaa
26/08/09 9:35
GrG
non conosco bene il protocollo udp... comunque penso che dovresti terminare la connessione e farlo riconnettere, no?
aaa
26/08/09 12:55
muteblaster
io faccio

ws(0).close
ws(0).bind 4000

ho provato anche
ws(0).close
unload ws(0)
load ws(0)
ws(0).bind 4000

ma non mi funziona
aaa
26/08/09 14:56
GrG
eh... forse devi dargli del tempo per fargli chiudere il winsock...

devi controllare lo stato del winsock e quando è chiuso allora usi bind...
aaa
27/08/09 18:16
muteblaster
ho risolto utile mi sono state le api InternetGetConnectedState

all'interno di un timer uso una variabile booleana che mi determina lo stato della connessione ( se c'e' o non c'e' )e mi fa' attivare la procedura di chiusura del winsock ed il suo riinizializzo.....

posto il codice ( messo all'interno di un timer con intervallo relativamente corto ).....


Public Declare Function InternetGetConnectedState Lib "wininet" (lpdwFlags As Long, ByVal dwReserved As Long) As Boolean

 dim connessione as boolean

 result = InternetGetConnectedState(flags, 0)
    If result Then        
        If connessione = True Then
           ws(0).Close
           ws(0).Bind 4000
           connessione = False
        End If
    Else        
        If Not connessione Then
           connessione = True
        End If
        ws(0).Close
        For i = ws.LBound To ws.UBound
            If Not ws(i).RemoteHost = "0" Then
               ws(i).RemoteHost = "0"
            End If
        Next i
        lst(4).ListItems.Clear
        Shape3.Width = 15
    End If

Ultima modifica effettuata da muteblaster 27/08/09 18:22
aaa
27/08/09 18:37
GrG
sono felice che tu abbia risolto ma per sapere lo stato del winsock bastava winsock1.status :P
aaa
29/08/09 10:25
LittleHacker
Scusate se mi intrometto8-| ma la riga che dice Winsock1(0).bind 4000
Cosa significa?? :k:
aaa
30/08/09 12:41
GrG
Specifica la porta locale e l'IP locale da utilizzare...
aaa