Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - winsock
Forum - Visual Basic 6 - winsock

Avatar
Agareth (Normal User)
Newbie


Messaggi: 9
Iscritto: 12/05/2010

Segnala al moderatore
Postato alle 15:07
Giovedì, 20/05/2010
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

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:36
Giovedì, 20/05/2010
Mi da' errore? Quale errore?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Agareth (Normal User)
Newbie


Messaggi: 9
Iscritto: 12/05/2010

Segnala al moderatore
Postato alle 16:07
Giovedì, 20/05/2010
siccome le funzioni del winsock connect e send_complete non partono
mi fa pensare che neanche si connetta

quindi ho fatto così
Codice sorgente - presumibilmente Delphi

  1. Winsock.Connect IpAddress, 10001
  2. Winsock.SendData Buffer
  3. If Winsock.State <> sckClosed Then Winsock.Close
  4.            
  5. Open PathLog For Append As #2
  6. Print #2, Now & " Send to " & IpAddress & " " & Buffer
  7. Close #2
  8. 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
Codice sorgente - presumibilmente Delphi

  1. Winsock.Connect IpAddress, 10001
  2. If Winsock.State <> sckConnect Then Winsock.SendData Buffer
  3. 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 il 20/05/2010 alle 16:11
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:20
Giovedì, 20/05/2010
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.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Agareth (Normal User)
Newbie


Messaggi: 9
Iscritto: 12/05/2010

Segnala al moderatore
Postato alle 16:33
Giovedì, 20/05/2010
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

PM Quote
Avatar
Corrupted (Normal User)
Newbie


Messaggi: 7
Iscritto: 23/05/2010

Segnala al moderatore
Postato alle 15:20
Domenica, 23/05/2010
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!

PM Quote