sul client :
Private Sub Cmd_OnLine_Click()
'APRE CONNESSIONE AL SERVER
IP = "xx.xxx.xxx.xx"
PORTASOCK = xxxx
If FormS1.Socket.State = sckClosed Then Socket.Connect IP, PORTASOCK
End Sub
Private Sub Socket_Connect()
'MANDA DATI AUTENTICAZIONE AL SERVER
Lbl_Stato.Caption = "In Autenticazione"
If Socket.State = sckConnected Then
Socket.SendData "XXXX" & "Ø" & USERID & "Ø" & PASSWORD & "Ø" & RELASE & "Ø"
Else
Lbl_Stato.Caption = "Non Connesso"
Socket.Close
End If
End Sub
Private Sub Socket_Close()
Socket.Close
Text_Stato.Text = "Chiusa dal Server"
End Sub
Private Sub Socket_DataArrival(ByVal bytesTotal As Long)
'RICEVE DATO
DATO = Empty
Socket.GetData DATO
'FILTRA DATO
Select Case Left$(DATO, 4)
Case "xxxx"
call routine 1
Case "xxxx"
call routine 2
Case "xxxx"
call routine n
End Select
End Sub
sul server
Public Sub Server_Ascolto_Disconnesso()
'DICHIARAZIONE VARIABILI
Dim I As Integer, QTA_SOCKET As Integer
'METTE SERVER IN ASCOLTO
If Form_Server.Socket(I).State = sckClosed Then
'IN ASCOLOTO
Form_Server.Socket(0).LocalPort = PORTA
Form_Server.Socket(0).Listen
'FORMATTA OGGETTI
Form_Server.Lbl_Stato.Caption = "In ascolto..."
Form_Server.Cmd_Ascolta_Disc.Caption = "Disconnetti"
'ESCE DA SUB
Exit Sub
End If
'CHIUDE SERVER
If Form_Server.Socket(0).State = sckListening Then
'CHIUDI SOCKET
QTA_SOCKET = Form_Server.Socket.UBound
Form_Server.Socket(0).Close
For I = 1 To QTA_SOCKET
Unload Form_Server.Socket(I)
Next I
'RESETTA MATRICE UTENTI
ReDim UTENTE(1 To QTA_UTENTI, 1 To QTA_DATI_UTENTE) As Variant
'FORMATTA OGGETTI
Form_Server.List_Connessi.Clear
Form_Server.Lbl_Stato.Caption = "Chiuso"
Form_Server.Cmd_Ascolta_Disc.Caption = "Ascolta"
End If
End Sub
Private Sub Socket_ConnectionRequest(Index As Integer, ByVal requestID As Long)
'DICHIARAZIONE VARIABILI
Dim I As Integer, QTA_SOCKET As Integer, N_SOCK As Integer
'CERCA SOCKET LIBERO
QTA_SOCKET = Socket.UBound
N_SOCK = 0
For I = 1 To QTA_SOCKET
If Socket(I).State = sckClosed Then
N_SOCK = I
Exit For
End If
Next
'CREA SOCKET
If N_SOCK = 0 Then
N_SOCK = QTA_SOCKET + 1
Load Socket(N_SOCK)
End If
'ACCETTA CONNESSIONE
Socket(N_SOCK).Close
Socket(N_SOCK).Accept requestID
'TESTO IN LISTA RICHIESTA CONNESSIONI
Call Testo_Rich_Conn(Format(Now, "dd/mm/yy hh:mm:ss") & ": " & Socket(N_SOCK).RemoteHostIP & " ID: " & requestID)
End Sub
Private Sub Socket_DataArrival(Index As Integer, ByVal bytesTotal As Long)
'DICHIARAZIONE VARIABILI
Dim DATO As String
Dim CAMPO() As String
'RICEVE DATO
DATO = Empty
Socket(Index).GetData DATO
'FILTRA DATO
Select Case Left$(DATO, 4)
'AUTENTICAZIONE
Case "xxxx"
call routine autenticazione
Case "xxxx"
call routine 1
Case "xxxx"
call routine n
End Select
End Sub
in più nel resto del codice del server una serie di invio dati con
Socket(Index).SendData "xxxx" & "Ø" & "istruzione"
|