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

Introduction

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.

Commandes du Contrôle

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

Exemple d'une Connexion

 

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 Serveur
'---

Port = 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...

Téléchargement

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] lienie.gif (941 octets)[Actualités]  [Trucs & Astuces] [Astuces Windows] [ActiveX-Ocx/Dll] [Articles] [Codes Sources] [VB Games] [Fichiers Sons] [Fichiers Icônes] [Programmes & Sources]  mailing.gif (910 octets)[Mailing-List] smiley.gif (359 octets)[Divers] about.gif (920 octets)[A Propos]