Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VB6] WinSock.SendData

    Ciao a tutti,
    tramite Winsock devo madare più messaggi con un ciclo FOR ad ogni client collegato:

    *SERVER

    Private Sub InviaDati(ByVal Index As Integer, ByVal Message As String)
    Winsock1(Index).SendData Message
    End Sub

    Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
    ...
    For cl = 1 To numero
    messaggio = "&&&"
    Call InviaDati(cl, messaggio)
    For ip = 1 To numero
    messaggio = "$$$" + Winsock1(ip).RemoteHostIP
    Call InviaDati(cl, messaggio)
    Next
    Next
    ...

    *CLIENT

    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim mess As String
    Winsock1.GetData mess
    MsgBox (mess)
    End Sub


    Il problema è che nel client non mi arrivano tante msgbox quanti i cicli FOR, ma una sola che contiene tutti i messaggi concatenati in un unica stringa.

    Come faccio ad inviare ripetutamente più messaggi riuscendo a "scinderli"?

  2. #2
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    Devi mettere un ritardo nel ciclo for tra un invio e l'altro per dare il tempo al client di leggere e svuotare il buffer di ricezione.

    Nel tuo caso, il ciclo for e' talmente piu' veloce del protocollo di trasporto dati che quest'ultimo vede i dati come fossero un unico invio.
    ...and I miss you...like the deserts miss the rain...

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Per VB c'è il relativo sub-forum.
    Ti sposto lì.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Che cosa devo usare per "creare un ritardo"?

  5. #5
    Puoi usare un timer, ad esempio impostalo per inviare una stringa ogni 5 secondi.

    In alternativa invia tutte le stringhe insieme e delimitale con qualche carattere speciale, poi nel client che riceve i dati usi Split per ottenere le varie sottostringhe.
    http://www.firesoftweb.it - Servizi gratuiti per il tuo sito web: forum, guestbook, contatori visite...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.