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 - invio winsock nn di seguito
Forum - Visual Basic 6 - invio winsock nn di seguito

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 20:41
Mercoledì, 06/02/2008
mi spiego...
ho questo codice
Codice sorgente - presumibilmente Visual Basic 6

  1. for i=0 to 1
  2. wsk.senddata info(i)
  3. next i



i dati xò mi arrivano tt insieme: info(0)info(1)info(2)...info(n)

cè un modo per inviare i dati quando la socket ha finito l' invio dei dati precedenti?

PM Quote
Avatar
gius (Ex-Member)
Expert


Messaggi: 294
Iscritto: 20/06/2007

Segnala al moderatore
Postato alle 21:03
Mercoledì, 06/02/2008
Potresti fare
Codice sorgente - presumibilmente VB.NET

  1. Dim OK As String
  2. OK = "OK"
  3. If Winsock1.BytesReceived Then
  4. Winsock1.SendData(OK)
  5. End If



Invece al server
Codice sorgente - presumibilmente VB.NET

  1. Dim Str As String
  2. Winsock1.GetData Str,vbString
  3. If Str = "OK" Then
  4. 'Esegui il ciclo
  5. End If


Ultima modifica effettuata da gius il 06/02/2008 alle 21:04
PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 16:12
Giovedì, 07/02/2008
prova a fare un doevents subito dopo la send in questo modo:

Codice sorgente - presumibilmente Plain Text

  1. wsk.Senddata "mia stringa"
  2. doevents
  3. 'esegue le altre operazioni come un altro invio
  4. wsk.Senddata "un altra stringa"
  5. doevents



prova cosi.
ciao

Ultima modifica effettuata da LuigiBiasi il 07/02/2008 alle 16:13
PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 19:23
Giovedì, 07/02/2008
gius: così no xk la socket che invia nn riceve
luigibassi: così ho provato ma niente, invia cmq tt di seguito... molto strano

altre soluzioni (niente di pensante)

PM Quote
Avatar
gius (Ex-Member)
Expert


Messaggi: 294
Iscritto: 20/06/2007

Segnala al moderatore
Postato alle 19:37
Giovedì, 07/02/2008
Testo quotato

Postato originariamente da antometal:

gius: così no xk la socket che invia nn riceve


Ne crei un'altra che riceve?!Questi sono i prob:asd:

PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 20:31
Giovedì, 07/02/2008
se nn funziona come ho detto, allora dovresti fare  cosi:
invia il messaggioe quando il server riceve il messaggio inviare al client un messaggio di giusta ricezione. cioè una serie di invio di messaggi.

client wsk.senddata "ok"
il server quando riceve "ok" invia wsk.senddata "okricevuto"
il client quando riceve "okricevuto" invia un altro messaggio.

Non so se sono stato chiaro...

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 21:00
Giovedì, 07/02/2008
Guarda che il protocollo TCP/IP non garantisce nulla circa la "separazione" dei dati inviati a livello di applicazione (application layer).

Il sistema non e' affatto "obbligato" a separare i dati che trasmetti, anche se li trasmetti separati; questi possono essere ricevuti - in ogni caso - uniti.

Come e' anche possibile che una stringa di dati venga ricevuta "spezzata" in parti (anche se nel corretto ordine).

Questi sono "i fondamenti" della programmazione di rete TCP/IP ...

A livello "applicazione", l'unica cosa che puoi fare e' inserire dei caratteri "marker" che indichino al codice che riceve, come "ricostruire" i dati inviati.

Se non hai chiari questi concetti, ti consiglio di fermarti e studiarli bene perche', altrimenti, non arriverai mai ad avere un programma che comunichi stabilmente ed affidabilmente in rete.

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 21:12
Giovedì, 07/02/2008
grazie a tt
seguirò il consiglio di luigi anche se nn è proprio ciò che è volevo ma è sicuramente il metodo + sicuro

PM Quote
Avatar
jordan (Normal User)
Newbie


Messaggi: 1
Iscritto: 08/02/2008

Segnala al moderatore
Postato alle 12:05
Venerdì, 08/02/2008
Ciao scusa ma se fai una funzione bufferizza??
Bufferizzi i dati che ricevi nel data arrival del
socket fino al tasto invioo e la parte dopo
in un'altra variabile sempre globale.
Poi riprendi a leggere dalla parte dopo l'invio.
Usa la funzione Instr per prendere i dati
prima dell'invio e poi la funzione Right per salvare anche quelli dopo. Sono cmq spiegate nell'Help di Vb6:)
fammi sapere. ciao.

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo