Intendi dire tramite una password ?
Se è così, potresti farlo dopo che è avvenuta la connessione.
Quindi, la password, sarebbe il primo dato che il client invia al server.
Continuando con l'esempio precedente...
Lato server :
codice:
Private Sub Form_Load()
Timer1.Interval = 500
Winsock1.LocalPort = "100"
Winsock1.Listen
End Sub
Private Sub Timer1_Timer()
LblWinsock.Caption = StatoWinsock(Winsock1.State)
End Sub
Private Function StatoWinsock(ValoreNumerico As Integer) As String
Select Case ValoreNumerico
Case Is = 0
StatoWinsock = "Chiuso"
Case Is = 1
StatoWinsock = "Aperto"
Case Is = 2
StatoWinsock = "In attesa"
Case Is = 3
StatoWinsock = "Connessione in sospeso"
Case Is = 4
StatoWinsock = "Risoluzione dell'host in corso"
Case Is = 5
StatoWinsock = "Host risolto"
Case Is = 6
StatoWinsock = "Connessione in corso"
Case Is = 7
StatoWinsock = "Connesso"
Case Is = 8
StatoWinsock = "Il client sta chiudendo la connessione"
Case Is = 9
StatoWinsock = "Errore"
End Select
End Function
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.Accept requestID
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Const Password As String = "abcd"
Static Autenticato As Boolean
Dim Dati As String
Winsock1.GetData Dati, vbString
If Autenticato = False Then
If Dati = Password Then
Autenticato = True
Else
Winsock1.Close
End If
End If
End Sub
Lato client :
codice:
Private Sub Command1_Click()
Winsock1.Connect "127.0.0.1", "100"
End Sub
Private Sub Form_Load()
Timer1.Interval = 500
Command1.Caption = "Connetti"
End Sub
Private Sub Timer1_Timer()
LblWinsock.Caption = StatoWinsock(Winsock1.State)
End Sub
Private Function StatoWinsock(ValoreNumerico As Integer) As String
Select Case ValoreNumerico
Case Is = 0
StatoWinsock = "Chiuso"
Case Is = 1
StatoWinsock = "Aperto"
Case Is = 2
StatoWinsock = "In attesa"
Case Is = 3
StatoWinsock = "Connessione in sospeso"
Case Is = 4
StatoWinsock = "Risoluzione dell'host in corso"
Case Is = 5
StatoWinsock = "Host risolto"
Case Is = 6
StatoWinsock = "Connessione in corso"
Case Is = 7
StatoWinsock = "Connesso"
Case Is = 8
StatoWinsock = "Il client sta chiudendo la connessione"
Case Is = 9
StatoWinsock = "Errore"
End Select
End Function
Private Sub Winsock1_Connect()
Const Password As String = "abcd"
Winsock1.SendData Password
End Sub