côté serveur :
Private Sub tcpserver_ConnectionRequest _
(Index As Integer, ByVal requestID As Long)
Nbre_client_current = Nombre_client - serveur.ListClient.ListCount
If Nbre_client_current = 0 Then
For i = 0 To serveur.ListClient.ListCount
If serveur.ListClient.ListCount = 0 Then Exit For
tabligneip = Split(serveur.ListClient.List(i), " " )
If i = serveur.ListClient.ListCount Then Exit For
If tabligneip(0) = TCPserver(0).RemoteHostIP Then GoTo here
Next
Exit Sub
here:
End If
If TCPserver(0).State <> sckClosed Then 'Si la connection n'est pas fermée,
If Index = 0 Then
intMax = intMax + 1
Load TCPserver(intMax)
'TCPserver(intMax).Close 'on la ferme
TCPserver(intMax).LocalPort = 0
c = TCPserver(0).RemoteHostIP
TCPserver(intMax).accept requestID 'On accepte la connection qui arrive
TCPserver(intMax).SendData "Taille" & FileLen(chemin & "\contacts.txt" )
c = TCPserver(0).RemoteHost
End If
End If
End Sub
Coté Client :
Private Sub tcpClient_DataArrival _
(ByVal bytesTotal As Long)
Dim Data As String 'Variable qui va stoker les données pour creer le fichier
On Error GoTo fin
TCPclient.GetData Data 'Recevoir les données
test_connexion = 0
'*****************************demande d'envoi du fichier contacts.txt***************************
If Left(Data, 6) = "Taille" And cmdenvoyer.Enabled = True And fermer = 0 And mise_en_service = 0 Then 'Si le client envoi la taille du fichier,
cLenTotal = Int(Mid(Data, 7)) 'on l'enregistre
TCPclient.SendData "Go$$" & Description 'On informe que l'on est prêt a recevoir le fichier
Exit Sub
End If
'****************************envoyer un message*****************************************
If Left(Data, 6) = "Taille" And cmdenvoyer.Enabled = False Then
envoi_message = "$P$" & CStr(NUM) & "$P$" & LevelSent & "$P$" & messagesent & "$P$" & Description
TCPclient.SendData envoi_message
Exit Sub
End If
'*****************************demande d'envoi du fichier contacts.txtn lorsque le Client est en marche avant le server***
If Left(Data, 6) = "Taille" Then 'Si le client envoi la taille du fichier,
cLenTotal = Int(Mid(Data, 7)) 'on l'enregistre
TCPclient.SendData "Go$$" & Description 'On informe que l'on est prêt a recevoir le fichier
Exit Sub
End If
If Data = "ACK" Then
Accusée = "ACK"
Journal
Exit Sub
End If
'*****************************Fermeture de Page plus Client *************
If fermer = 1 Then
TCPclient.SendData "Exit$$" & Description
Exit Sub
End If
'*************************réception du fichier contacts******************************
If Left(Data, 6) = "Taille" Then Exit Sub
Open chemin & "\contacts.txt" For Output As #1
Print #1, "";
Close #1
If FileOpen = False Then 'Si le fichier n'as pas encore été ouvert,
Open chemin & "\contacts.txt" For Binary Access Write As #1 'on le fait
FileOpen = True 'Le fichier est maintenant ouvert (Sert pour ne pas l'ouvrir une deuxième fois)
ElseIf FileOpen = True Then 'S'il est déjà ouvert
DoEvents
End If
cAvance = cAvance + Len(Data) 'La progression du téléchargement
Put 1, , Data 'On continu de creer le fichier qui télécharge
fin_transfert = 0
Timerdogserver.Interval = 60000
Timerdogserver.Enabled = True
Label3.Visible = False
Tabl.Visible = True
Close #1 'On ferme le fichier
FileOpen = False 'Le fichier n'est plus ouvert (Pour une éventuelle prochaine connection)
fin:
TCPclient.Close 'On ferme la connection
End Sub