![]()
LE CONTROLE dsSOCKET: INTRODUCTION
Introduction
Commandes du Contrôle
Commandes de Connexion
Commandes de Transfère
Exemple d'une Connexion
Application Cliente
Application Serveur
Téléchargement
dsSocket est un contrôle Winsock (Windows Sockets) puissant
qui a été developpé par Dolphin Systems et permet de créer des
applications Internet (Client-Serveur).
dsSocket supporte la gestion de réseaux TCP et UDP. Nous verons
juste le côté TCP dans cet article.
Le principe d'une application Internet est simple: vous
l'application cliente, envoyez une requête à l'application serveur... Celui-ci examine
la requete et vous envoie une réponse. Et cela ainsi de suite.
Exemple d'une connexion client-serveur: le serveur se met en position d'écoute, le
client tente un connexion vers le serveur en se servant d'une IP ou autre, le serveur
accepte/refuse la connexion, si la connexion est acceptée le client peut commencer à
envoyer des instructions au serveur.
J'ai listé juste les commandes les plus utilisées.
NOTE: où vous verez ~Client ou ~Serveur, cela signifira que la commande est
généralement utilisée côté Client/Serveur.
| COMMANDES DE CONNEXION |
Connect - Méthode utilisée pour se
connecter à un ordinateur distant.
Ex: dsSocket1.Connect
RemotePort - Propriété utilisée pour
spécifier le port de communications où se connecter. ~Client
Un ordinateur en possède plusieurs (et chaque port a ses caractéristiques)
Ex: dsSocket1.RemotePort = Port
RemoteHost - Propriété utilisée pour
spécifier l'hôte (ordinateur) distant où se connecter. ~Client
Ex: dsSocket1.RemoteHost = "irc.ircserv.com"
RemoteDotAddr - Propriété Utilisée pour
spécifier l'adresse distante du serveur dans la forme avec points. ex 127.0.0.1 ou plus
simplement pour se connecter à une adresse IP. ~Client
Ex: dsSocket1.RemoteDotAddr = "127.0.0.1"
LocalPort - Propriété utilisée pour
spécifier un port où lire les connections ~Serveur
Ex: dsSocket1.LocalPort = Port
LocalDotAddr - Propriété utilisée pour
trouver l'adresse IP de votre machine.
Ex: dsSocket1.LocalDotAddr
Listen - Méthode utilisée pour lire un port
spécifique - ~Serveur
Ex: dsSocket1.Listen
DataSize - Propriété utilisée pour trouver la taille d'un paquet d'informations
arrivant.
Ex: String = dsSocket1.DataSize
Close - Méthode utilisée pour fermer une connexion/socket.
Ex: dsSocket1.Close
| COMMANDES DE TRANSFERE |
Send - Méthode utilisée pour envoyer un paquet
d'informations.
Ex: dsSocket1.Send = Paquet
dsSocket_Receive - Evènement déclenché lors de la
reception d'un paquet d'informations. Ex
Private Sub dsSocket1_Receive(ReceiveData As String)
End Sub
dsSocket_Connect - Evènement déclenché lorsque la
connexion est établie. Ex
Private Sub dsSocket1_Connect()
End Sub
dsSocket_Close - Evènement déclenché lorsque la
connexion est fermée. Ex
Private Sub dsSocket1_Close(ErrorCode As Integer, ErrorDesc As String)
End Sub
dsSocket_Exeption - Evènement déclenché lorsqu'il
y a une exeption (erreur). Ex
Private Sub dsSocket1_Exception(ErrorCode As Integer, ErrorDesc As String)
End Sub
dsSocket_SendReady - Evènement déclenché lorsque
la connexion est prête pour l'envoie des données. Ex
Private Sub dsSocket1_SendReady()
End Sub
dsSocket_Listen - Evènement déclenché lorsque la
connexion est prête pour la lecture de connexions vers le port spécifié. Ex
Private Sub dsSocket1_Listen()
End Sub
| L'APPLICATION CLIENTE |
L'application cliente est celle qui se connecte au serveur. Elle ne demande pas beaucoup de codage. Voici une application simple...
'Connexion au ServeurPort = 1337
dsSocket1.RemotePort = Port
La variable Port est un port de communication commun entre le serveur et le client (i.e le serveur et le client doivent être connectés au même port pour communiquer. Il faut Evitez les ports déjà utilisés comme 80, 21, 25..
dsSocket1.RemoteDotAddr = "255.12.68.2"
C'est l'adresse IP du serveur auquel on se
connecte.
Si c'est une application de test (le client et le serveur sont sur le même PC), vous
pouvez utiliser 127.0.0.1 (c'est l'IP de votre machine quand vous êtes Offline) ou encore
mettre ceci: dsSocket1.RemoteHost = "localhost" à la place.
dsSocket1.Connect
La connection est lancée :^)
'Envoie de données
'----
dsSocket1.Send = "Bonjour au Serveur"
'Reception de données
'----
Sub dsSocket1_Receive(ReceiveData As String)
txtReceive = txtReceive & vbCrlf & ReceiveData
End Sub
'Erreur de Connexion
'----
Sub dsSocket1_Exception(ErrorCode As Integer, ErrorDesc As String)
Msgbox ErrorDesc
dsSocket1.Close
End Sub
Et c'est tout (enfin presque, car il faut du code pour déconnecter, gérer proprement les
erreurs, scroller automatiquement le textbox qui affiche les messages...)
| L'APPLICATION SERVEUR |
Le côté serveur d'une connexion Client-Serveur est
essentiel pour la création du réseau. En fait le serveur peut gérer plusieurs
connexions simultanées des utilisateurs (clients), donc c'est la partie la plus
importante. Les utilisateur se connectent donc au serveur via l'adresse IP de celui-ci.
Le serveur simple a besoin de deux contrôle dsSocket pour
fonctionner normalement. dsSocket1 pour lire le port, dsSocket2
pour gérer la connexion.
'Ouverture de l'application Serveur
----
Port = 1337
dsSocket1.LocalPort = Port
'Il peut commencer à attendre les connexions
(à lire le port)
dsSocket1.Listen
'Tentative de connexion
----
Sub dsSocket1_Accept (SocketID As Integer)
'On lie le demandeur au recepteur
dsSocket2.Socket = SocketID
'On n'a plus besoin de lire le port
'Car c'est une application serveur qui ne gère qu'une connexion à la fois :^(
'Mais si vous avez de l'imagination, vous pourrez créer un index de contrôles dsSocket2
'pour gérer toutes les connexions :^)
dsSocket1.Close
End Sub
'Reception de données
----
Sub dsSocket2_Receive (ReceiveData As String)
'if ReceiveData = "1" then dsSocket2.Send =
"Connexion Acceptée"
'if ReceiveDate = "..." then ...
End Sub
C'est tout !! Avec beaucoup d'imagination et à l'aide des articles que Camernet Development vous propose, vous pourrez très bientôt créer des applications style ICQ :^)
Ceci n'était qu'une Introduction à dsSocket, maintenant dans les prochains articles nous étudirons des cas précis d'applications tels que le IRC, le Mail...
C'est bien beau tout ça, mais où est le contôle dsSocket lui-même ?? hé, hé... le voici:
dsSocket.zip - Téléchargez le zip qui contient l'ocx dsSocket (dsSocket32.ocx) [et l'ocx principal de Winsock (MsWinSck.ocx)].
Ensuite vous le dézippez soit dans c:\windows\system (de préférence) ou dans le repertoire de votre application et le tour est joué !
[Home]
[Actualités]
[Trucs & Astuces]
[Astuces Windows]
[ActiveX-Ocx/Dll]
[Articles]
[Codes Sources]
[VB
Games]
[Fichiers Sons]
[Fichiers Icônes]
[Programmes & Sources]
[Mailing-List]
[Divers]
[A Propos]