|
Winsock - Partie 1
: Les bases
|
|
|
| #2 - Exemples pratiques |
 |
|
***********************************************************
# SERVEUR - METTRE LE SERVEUR A L'ECOUTE #1
***********************************************************
Private Sub Form_Load()
Winsock1.LocalPort = 1030 'Définit
1030 comme port local
Winsock1.Listen 'Ecoute sur le port
local
End Sub
Le serveur écoute sur le port 1030 et attend une
connection sur ce port.
***********************************************************
# SERVEUR - ACCEPTER LES CONNECTIONS #2
***********************************************************
Private Sub Winsock1_ConnectionRequest(Index
As Integer, ByVal
requestID As Long)
Winsock1.Close 'Ferme le serveur
et
Winsock1.Accept requestID 'accepte
la connection ayant pour ID requestID
End Sub
Dans cet exemple le serveur arrête d'écouter
et établit la connection. Le serveur n'accepte
donc qu'une seule connection.
Si on veut réaliser un serveur multiconnections
il faut définir la propriétéIndex
du contrôle à0 et utiliser ce code :
Public numserv As Integer
Private Sub Winsock1_ConnectionRequest(Index
As Integer, ByVal
requestID As Long)
numserv = numserv + 1 'incrémente
le nombre de serveur
Load Winsock1(numserv) 'charge un
nouveau
Winsock1(numserv).Accept requestID 'accepte
la connection
End Sub
Ici le serveur charge un autre contrôle avec lequel
il accepte la connection et le contrôle original
reste àl'écoute d'une nouvelle connection.
***********************************************************
# CLIENT - SE CONNECTER #3
***********************************************************
Private Sub Command1_Click()
Winsock1.RemoteHost = "127.0.0.1"'l'hôte
distant est l'adresse IP 127.0.0.1
Winsock1.RemotePort = 1030 'le port
distant est 1030
Winsock1.Connect 'lance la connection
End Sub
Un clic sur le bouton provoque le lancement d'une connection
vers RemoteHost qui peut contenir le nom d'hôte
ou l'adresse IP du serveur. Notez que ce code est équivalent
à: Winsock1.Connect "127.0.0.1", 1030.
( Ici c'est l'adresse de retour qui correspond àl'ordinateur qui est utilisée ce qui permet de
pouvoir faire des tests sans posséder de réseau
(le serveur et le client sont sur la même machine)
)
***********************************************************
# CLIENT / SERVEUR - ENVOI DE DONNEES #4
***********************************************************
Private Sub Command1_Click()
If Winsock1.State = sckConnected
Then 'vérifie
si la connection est établie
Winsock1.SendData
Text1.Text 'envoie les données
End If
End Sub
Un clic sur le bouton provoque l'envoi du texte contenu
dans Text1, si la connection est établie.
***********************************************************
# CLIENT / SERVEUR - RECEPTION DE DONNEES #5
***********************************************************
Private Sub Winsock1_DataArrival(ByVal
bytesTotal As Long)
Winsock1.GetData Temp, vbString,
10 'récupère les données
et les stocke dans la variable "Temp"
End Sub
Lors de leur arrivée, les données
sont récupérées avec une limitation
de 10 caractères.
Ainsi si la donnée transmise est "Visual Basic",
on ne récupère que "Visual Bas".
Private Sub Winsock1_DataArrival(ByVal
bytesTotal As Long)
Dim Temp As String
Winsock1.GetData Temp 'récupère
toutes les données
End Sub
***********************************************************
# CLIENT / SERVEUR - FERMETURE DE LA CONNECTION #6
***********************************************************
Private Sub Command3_Click()
If Winsock1.State = sckConnected
Then 'si
connecté
Winsock1.Close 'ferme la connection
End If
End Sub
***********************************************************
# Vous trouverez des exemples plus poussés concernant
l'utilisation
# du contrôle Winsock comme la création &gestion d'un chat ou
# encore un programme de transfert de fichier dans la
catégorie
# Internet
&Réseaux des codes sources.
***********************************************************
|
| |
(c) - CYBER@TOM ASSOCIATION 2000-2004
|