20/05/10 13:07
Agareth
cerco di spiegare il problema in poche semplici parole
applicazione VB6 deve inviare un codice (es 12345) tramite winsock al server
il winsock si connette e invia senza nessun problema
ma alla seconda volta che cerco di connettermi mi da errore
il programma di ricezione a livello server non l'ho fatto io e non ho la minima idea di come funzioni
il problema mi fa venire in mente solo 2 cose:
o il winsock non chiude la connessione malgrado il mio winsock.close
o il server aspetta x prima di riportarsi in ascolto
come ne esco???
avete idee?
grazie a tutti
aaa
20/05/10 13:36
Mi da' errore? Quale errore?
20/05/10 14:07
Agareth
siccome le funzioni del winsock
connect e
send_complete non partono
mi fa pensare che neanche si connetta
quindi ho fatto così
Winsock.Connect IpAddress, 10001
Winsock.SendData Buffer
If Winsock.State <> sckClosed Then Winsock.Close
Open PathLog For Append As #2
Print #2, Now & " Send to " & IpAddress & " " & Buffer
Close #2
Buffer = NuovoBuffer
così da non usare le sue funzioni
ma si ferma sul send e scrive:
Wrong protocol or connection state for the requested transaction or request
quindi non si connette
ho provato a fare anche con
Winsock.Connect IpAddress, 10001
If Winsock.State <> sckConnect Then Winsock.SendData Buffer
If Winsock.State <> sckClosed Then Winsock.Close
ma così non fa il send perchè non è connesso
dovrei aspettare che la funzione connect parta..problema è che non parte
Ultima modifica effettuata da Agareth 20/05/10 14:11
aaa
20/05/10 14:20
Prima avevi detto
"il winsock si connette e invia senza nessun problema ... ma alla seconda volta"
adesso il problema è nella connessione (la prima o la seconda?).
In ogni caso, non puoi fare la Send subito dopo la Connect.
Quando fai la Connect devi attendere l'evento Connect per sapere che le operazioni di connessioni sono state completate. E devi valutare nell'evento Error tutte le situazioni di errore che si possono verificare.
Per capirci, se tenti la connessione e hai un evento Error che ti spiega il perchè non è andata a buon fine, tu devi individuarlo. Invece, tu ignori questa cosa e fai comunque la Send, per cui ottieni l'errore ...
Controlla che la connettività con il server remoto (sulla porta prescelta) sia a posto provando con il TELNET da dos.
23/05/10 13:20
Corrupted
Non è che hai messo nello stesso evento sia la connessione che l'invio dei dati da parte del winsock? Anche io ho avuto dei problemi di connessione tramite winsock e mi è bastato separare in due eventi differenti la connessione e l'invio dei dati. Non so perché, non è nemmeno il fatto di una mancanza di tempo per la connessione perché utilizzavo una pausa prima di inviare i dati, comunque vabbé, che ci dobbiamo fare!
aaa