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

    [VB6] Comunicazione tra client e server

    Forse mi sfugge qualcosa, utilizzando il metodo Winsock per la comunicazione dati tra client e server, il flusso delle informazioni è bidirezionale, giusto?

    Chiedo ciò perchè riesco ad inviare dal client al server, ma non dal server al client!

    In pratica effettuo una "SendData" dal server ma nella "Client_DataArrival" non arriva nulla. Qualcuno può illuminarmi su ciò?

    Grazie!

  2. #2
    Per fare una prova di comunicazione dal server al client ho creato un tasto sul server dove con una "InputBox" inserisco una stringa e la invio al client con una "SendData":

    Private Sub Command2_Click()
    Dim testo_prova As String
    testo_prova = InputBox("Inserire il testo di prova")
    Server.SendData (testo_prova)
    End Sub
    Nella "DataArrival" del client ho inserito una istruzione "GetData" per prendere la stringa in input e poi la metto in un campo "Text" in modo da avere riscontro visivo:

    Private Sub Client_DataArrival(ByVal bytesTotal As Long)
    Dim testo_server As String
    Client.GetData (testo_server)
    Text1.Text = testo_server
    End Sub

    Una volta lanciati client e server li connetto (la connessione da esito positivo), premo il tasto per inserire il testo, inserisco, premo "Ok" e teoricamente il client dovrebbe ricevere i dati, ma così non è.

    La connessione avviene con il server in attesa "Server.Listen" e il client che si connette "Client.Connect". Non capisco l'errore, la comunicazione sembra monodirezionale, che sia sbagliato qualche settaggio del Winsock?

  3. #3
    Prima ero riuscito a inviare dati dal client al server ma ora non riesco più a farlo . . . ? Così ho scritto due semplici programmi, client e server, con solo gli elementi base, sul client è presente un tasto per collegarsi al server, un tasto per controllare lo stato della connessione e un tasto per inviare una stringa di prova. Sul serve sono presenti: un tasto per metterlo in ascolto, un tasto per controllare lo stato della connessione e un campo "Text" dove inserire la stringa inviata dal client, di seguito riporto il codice e l'andamento del programma.

    1) Lancio gli eseguibili di client e server.

    2) Sul server premo il tasto per metterlo in ascolto.

    Private Sub Command1_Click()
    Server.LocalPort = 100
    Server.Listen
    End Sub
    3) Sul client premo il tasto per connettermi.

    Private Sub Command1_Click()
    Dim ip_server, porta_server As String
    ip_server = InputBox("Inserire l'IP del server")
    porta_server = InputBox("Inserire la porta del server")
    Client.Connect ip_server, porta_server
    End Sub
    4) Controllo lo stato della connessione di entrambi, lo stato è 7, cioè i due elementi sono connessi. La connessione è stata accettata.

    Private Sub Server_ConnectionRequest(ByVal requestID As Long)
    If Server.State <> sckClosed Then
    Server.Close
    End If
    Server.Accept requestID
    End Sub

    5) Premo il tasto sul client per inviare la stringa e inserisco il dato.

    Private Sub Command3_Click()
    Dim stringa_prova As String
    stringa_prova = InputBox("Inserire la stringa di prova")
    Client.SendData (stringa_prova)
    End Sub
    6) Dovrei ricevere la stringa e inserirla nel campo di testo.

    Private Sub Server_DataArrival(ByVal bytesTotal As Long)
    Dim testo_client As String
    Server.GetData (testo_client)
    Text1.Text = testo_client
    End Sub
    Ma dal client non ricevo nulla. Non capisco se sia il client che non invia o il server che non riceve . . . ?

    Qualcuno può illuminarmi? Grazie.

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.