Oppure

Loading
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.
20/05/10 14:33
Agareth
eh scusami all'inizio il problema era diverso :-|
il primo connect non lo faceva
il send neanche perchè era dentro la funzione connect
e il close nemmeno perchè era dentro la funzione send_complete
poi lui vedeva un'altro connect, il secondo, e quindi li mi dava il problema

ora siamo giunti al punto da concordare che non mi fa il connect e il problema del send di prima era dato dal fatto che provavo a inviare senza una connessione sotto

ora prova a vedere di connettermi alla porta 10001 del server, che non ci sia qualcosa che la blocca
poi ti dico
grazie mille per ora
aaa
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