Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente bannato
    Registrato dal
    Nov 2005
    Messaggi
    112

    Winsock -urgente pls -

    salve a tutti,
    scusate l'urgenza ma ho un rilascio imminente..

    ho questa applicazione vb6 che usa winsock. in pratica i client chiedono un dato al server ..
    questo secondo dei criteri seleziona il dato e lo invia tramite winsok al client che lo ha richiesto.
    Ora..
    se i client chiedono in tempi diversi il dato è tutt'ok..

    ma se provo a effettuare la richesta -contemporaneamente- mi capita che :

    uno solo dei due client riceve il dato .
    oppure..
    uno solo riceve "entrambi i dati"

    ho provato a cercare per eventuali variabili sporche ma nulla..
    che posso provare.. ? non so ..tipo bufferizzare le richieste ..
    che mi consigliate?

  2. #2
    Postare il codice sarebbe già un passo avanti...
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente bannato
    Registrato dal
    Nov 2005
    Messaggi
    112
    ok .. fammi sapere se ti è chiaro..

    tnx

    ' ------------------------- >
    ' Ricevo dati da un client
    Private Sub sckAccept_DataArrival(Index As Integer, ByVal bytesTotal As Long)

    Dim sData As String
    sckAccept(Index).GetData sData

    ' Ne faccio un out-put sul debugtxt
    DebugText "Client " & Index & ": " & sData & " alle " & Now()


    ' RICHIESTA DI LOGIN
    ' ------------------------- >
    If InStr(sData, "LoginName") > 0 Then

    ' INVIO LOGIN NAME AL CLIENT
    ' < -------------------------
    sckAccept(Index).SendData sData

    End If



    ' RICHIESTA DI CONTATTO
    ' ------------------------- >
    If InStr(sData, ChiediContatto) > 0 Then

    ' mi prendo la login dell'op
    UserOP = Replace(sData, ChiediContatto, "")

    ' Ne faccio un out-put sul debugtxt
    DebugText "L'Operatore " & UserOP & " ha richiesto un nuovo contatto alle " & Now()




    ' INVIO CONTATTO AL CLIENT
    ' < -------------------------
    nContatto = ""
    nContatto = GetContatto(UserOP, 0) ' esegue una query nel db per selezionare il dato da inviare
    sckAccept(Index).SendData NuovoContatto & nContatto

    End If

    End Sub

  4. #4
    Utente bannato
    Registrato dal
    Nov 2005
    Messaggi
    112
    Sto debuggando il server e ho notato che il server winsok gestisce correttamente le richieste.. riesce ad assegnare i contatti da distribuire anche se questi arrivano "contemporaneamente"
    il problema è sul client.

  5. #5
    Utente bannato
    Registrato dal
    Nov 2005
    Messaggi
    112
    è strano perchè io dopo aver inviato i dati al client, printo tutto in una textbox come debug e il serverino mi dice cha ha inviato.. quindi per stamparmelo a video è passato sull'istruzione .senddata ma perchè il client non me lo fa vedere ?

    // lato server

    ' INVIO CONTATTO AL CLIENT
    ' < -------------------------
    nContatto = ""
    nContatto = GetContatto(UserOP, 0)

    3. sckAccept(Index).SendData NuovoContatto & nContatto

    ' Ne faccio un out-put sul debugtxt
    4. DebugText "<-- nuovo contatto " & nContatto & " per " & UserOP & " inviato alle " & Now()

    sul punto 4 lo stampa a video correttamente, quindi il punto 3 anche lo fa ..no ?

  6. #6
    Utente bannato
    Registrato dal
    Nov 2005
    Messaggi
    112
    insomma ..il winsock server mi dice che lo ha inviato ..mentre il client non mi dice nulla...
    poi mentre continua a fare richieste multiple al server all'improvviso .. sul client che non riceveva nulla mi appaiono tutti i contatti non ricevuti . uno di seguito all'altro.

    è come se O il server avessa bufferizzato fino a quel momento l'invio dei contatti ..
    o il client avesse bufferizzato per non so quale motivo prima di printarmi a video i contatti inviati dal server.

    cha cacchiarolina posso vedere ?

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.