Le premier site francophone dédié au développement Pocket PC


Utilisation du contrôle Winsock (partie 1)
 


Partie 1
Partie 2

Winsock

Le terme Winsock désigne un ensemble de fonctions chargées d'établir un canal de communication entre les applications, qu'elles soient sur la même machine, sur des machines différentes d'un réseau local, ou même sur des machines visibles sur internet. Sachez que dès que vous vous connectez au net où que vous relevez vos mails, vous utilisez les fonctions Winsock de votre Pocket PC.

Sur votre PC de bureau, grâce aux Winsock, vous pouvez très bien écrire un petit programme en Visual Basic capable de s'adresser à votre serveur de mails en utilisant les protocoles SMTP et POP3, ou encore, accéder à un serveur FTP ou encore HTTP (serveur web). Les Winsock étant des fonctions de bas niveau, c'est à vous de "parler" HTTP ou FTP pour vous faire comprendre de la machine distante.

Notion de client et de serveur

Une connexion Winsock met en scène 2 acteurs. Tout d'abord, nous avons l'application qui a le rôle de serveur. En face, nous avons une autre application, l'application cliente. Le serveur est là pour répondre aux questions que lui pose son (ou ses) client(s).

Le contrôle Winsock de eVB

Pour utiliser dans vos applications eVB le contrôle Winsock, vous devez cocher sa référence dans la liste des composants à inclure dans la boîte à outils. Pour celà, activez la fenêtre "Components" par le menu "Project->Components", cochez ensuite la ligne "Microsoft CE Winsock Control 3.0". Validez ensuite par le bouton "OK".

A partir de ce moment, le contrôle WinSock devient disponible et vous pouvez le placer sur la fenêtre de votre choix.

Nous allons maintenant créer une petite application de type serveur et une autre application de type client.

Le serveur

Pour que le serveur puisse communiquer avec une autre application située sur la même machine il faut paramètrer ses propriétés "RemoteHost" et "Port" avec le nom du Pocket PC et un numéro de port à choisir. Ce numéro de port doit être le même pour le serveur et le client.

WinSock1.RemoteHost = WinSock1.LocalHostName
WinSock1.LocalPort = 8000

Lorsqu'un serveur se met en route, il doit attendre qu'un éventuel client se connecte à lui. Pour cela, le contrôle doit se mettre dans un mode spécial, le mode "écoute" :

Call WinSock1.Listen

Lorsque le client se connecte, l'événement "ConnectionRequest" est généré. Pour que la connexion soit effective, il faut que le serveur l'accepte en utilisant la méthode "Accept" :

Private Sub WinSock1_ConnectionRequest()
 Rem On accepte la demande de connexion
 Call WinSock1.Accept


End Sub

A partir de cet instant, la connexion est effective et le serveur est prêt à recevoir les requêtes du client.
Au delà de la notion de client/serveur, chaque application peut recevoir des données de l'autre et aussi en envoyer.

L'événement "DataArrival" est généré dès que des données arrivent. Il suffit alors de lire ces données avec la fonction "GetData" :

Private Sub WinSock1_DataArrival(ByVal bytesTotal As Long)
 Dim wBuffer As String
         
 Rem On place dans la variable wBuffer
Rem les données arrivées Call WinSock1.GetData(wBuffer) End Sub

Pour envoyer des données au client, il suffit d'utiliser la méthode "SendData" avec comme paramètre la chaine à envoyer :

Call WinSock1.SendData(wBuffer)

Sources du serveur

Dans la seconde partie, nous allons créer le client et faire communiquer nos 2 applications.

Stéphane Sibué

   
 
 
Copyright 2001-2004 - Tous droits réservés
 

iPAQ est un produit de COMPAQ.
Visual Tools est un produit de Microsoft Corporation.
Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.