Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252

    [vb6] winsock multiutente che mi manca?

    vi posto direttamente il codice completo perchè non capisco cosa
    manca nel codice ma senza sbirciare nn vado avanti.
    Non riesco a fare una seconda connessione

    codice:
    Private intMax As Long
    Private Sub CmdInvia_Click()
    Tcp(0).SendData TxtOut.Text 'invia i dati
    TxtIn.Text = TxtIn.Text & "utente>" & TxtOut.Text & vbCrLf 'scrive tutto nella room
    REPORT = REPORT & "Messaggio inviato:" & TxtOut.Text & vbCrLf 'salva un report
    TxtOut.Text = ""
    End Sub
    
    Private Sub Form_Load()
    intMax = 0
    'imposto la localport del server
    If TxtLocalIP = "" Then
    TxtLocalIP.Text = Tcp(0).LocalIP
    REPORT = REPORT & "Data:" & Date & vbCrLf & "Ora:" & Time & vbCrLf & "IPServer:" & TxtLocalIP & vbCrLf
    End If
    If TxtPorta.Text = "" Then
    TxtPorta.Text = 1000
    End If
    
    Tcp(0).LocalPort = TxtPorta.Text ' recupera la porta dalla casella di testo
    
    REPORT = REPORT & TxtPorta & vbCrLf
    'imposto il tcp in listen per l'attesa di connessioni
    Tcp(0).Listen
    REPORT = REPORT & "Server Avviato..." & vbCrLf
    PARAMETRI.Caption = "Server In Ascolto"
    
    End Sub
    
    Private Sub REPORT_Change()
    
    REPORT.SelStart = Len(REPORT.Text)
    End Sub
    
    
    Private Sub Tcp_ConnectionRequest(Index As Integer, ByVal requestID As Long)
    'se la connessione è aperta allora accettiamo la richiesta di connessione altrimenti apriamo
    
    REPORT = REPORT & "Accesso in corso..." & vbCrLf
    If Tcp(0).State <> sckClosed Then 'se la conn è aperta
    Tcp(0).Close 'la chiudo
    REPORT = REPORT & "Sessione Chiusa " & Index & vbCrLf
    Tcp(0).Accept requestID 'e mi metto in ascolto
    REPORT = REPORT & "Sessione Aperta " & Index & vbCrLf
    'dopo la richiesta di connessione ne abilita una seconda
    REPORT = REPORT & "Connesso " & Tcp(0).RemoteHostIP & vbCrLf
    End If
    If Index = 0 Then
    intMax = intMax + 1
    Load Tcp(intMax)
    Tcp(intMax).LocalPort = 0
    Tcp(intMax).Accept requestID
    End If
    End Sub
    
    Private Sub Tcp_DataArrival(Index As Integer, ByVal bytesTotal As Long)
    Dim DatiIN As String
    Tcp(0).GetData DatiIN
    TxtIn.Text = TxtIn.Text & DatiIN & vbCrLf
    REPORT.Text = "Dati in arrivo:" & TxtOut.Text & Tcp(0).BytesReceived & " Byte" & vbCrLf
    
    End Sub
    
    Private Sub Tcp_Error(Index As Integer, ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
    Tcp(0).Close
    PARAMETRI.Caption = "Server Disconnesso"
    REPORT.SelStart = Len(REPORT.Text)
    REPORT.Text = REPORT & "Sever Disconnesso" & vbCrLf
    End Sub
    
    Private Sub TxtOut_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyReturn Then
    Me.CmdInvia.Value = True
    End If
    End Sub

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Non capisco una cosa...

    Sembra che tu abbia creato un array di controlli Tcp()
    ma poi usi sempre e solo il primo: Tcp(0)

    Ovvio che per una seconda connessione dovresti utilizzare Tcp(1)


  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252
    si risolto hai ragione, tra l'altro avevo fatto piu di un requestid



    dovevo inserire la variabile intmax al posto (0)

    ora comunico con molti client senza problemi

    ora devo risolvere la risposta del server che per ora nn tiene traccia dei client quindi risponde solo all'ultimo che si è connesso


    ma credo sia poco rispetto a quello che voglio creare io


    speriamo bene
    ***********************************
    if garzone = matto then
    garzone(0).senddata manicomio
    else
    garzone= "salvo per un pelo"
    end if

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.