ACC2000 : Deux exemples qui utilisent le contrôle ActiveX de Winsock

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

209905
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Avancé : Nécessite une matière de programmation, l'interopérabilité et compétences multi-utilisateur.

Cet article s'applique uniquement à une base de données Microsoft Access (.mdb).

Résumé
Cet article fournit deux exemples d'utilisation du contrôle ActiveX de Winsock installé avec les outils Microsoft Office 2000 Developer Edition.
Plus d'informations
Le contrôle de Winsock vous permet de vous connecter à un ordinateur et l'échange de données à distance entre les ordinateurs client et serveur. Le contrôle de Winsock prend en charge deux protocoles : TCP (Transmission Control Protocol) et UDP (User Datagram Protocol).

TCP est un protocole de connexion. Une analogie commune utilisée pour décrire TCP est celui d'un téléphone. Dans cette analogie, les appelants doivent établir une connexion aux deux extrémités de la ligne téléphonique avant de pouvoir échanger des informations. Un ordinateur à l'aide du protocole TCP doit recevoir la confirmation à partir de l'ordinateur de recevoir une connexion a été établie avant que les deux ordinateurs peuvent transférer des données.

UDP est un protocole sans connexion. Une analogie commune utilisée pour décrire UDP est celui d'une radio. Dans cette analogie, une station de radio, diffuse son signal sans connaître exactement si tout le monde est à l'écoute. Un ordinateur à l'aide du protocole UDP envoie des données et ne nécessite pas une connexion avec l'ordinateur sur le point récepteur de la transmission.

Exemple 1 - utilisation du contrôle ActiveX Winsock avec TCP

Cet exemple utilise le même ordinateur pour envoyer et recevoir des données. Vous créez un formulaire avec trois contrôles de Winsock. Un des contrôles émule l'environnement de l'ordinateur client pour envoyer une demande de connexion à un serveur. Les deux autres contrôles émulent l'environnement sur un ordinateur serveur : un contrôle attend une demande de connexion et l'autre accepte la demande lorsqu'il s'agit.
  1. Créer une nouvelle base de données vide nommée WinsockDemo.mdb.
  2. Créer le nouveau formulaire suivant (ne pas basé sur n'importe quelle table ou requête) en mode création :
       Form: TCPForm   ---------------------------------   Caption: TCP Form   Command button:      Name: cmdListen      Caption: Listen   Command button:      Name: cmdConnect      Caption: Establish Connection   Command button:      Name: cmdSend      Caption: Send Data   Command button:      Name: cmdRespond      Caption: Respond   Command button:      Name: cmdClose      Caption: Close Connection   Text box:      Name: Text1      Label Caption: Data Received:   Winsock control:      Name: axWinsockListen   Winsock control:      Name: axWinsockClient   Winsock control:      Name: axWinsockServer					
  3. Dans le menu affichage, cliquez sur code.
  4. Tapez la ligne suivante dans la section déclaration de module de classe du formulaire :
    Dim wsListen, wsClient, wsServer As Winsock					
  5. Tapez les procédures suivantes.

    Pour illustrer optimale le Winsock fonctionnement du contrôle entre client et serveur, les procédures sont répertoriés dans l'ordre dans lequel ils se produisent.
    Private Sub Form_Load()   ' Set one server Winsock control and the client Winsock control   ' when the form loads.   Set wsListen = Me!axWinsockListen.Object   Set wsClient = Me!axWinsockClient.Object   ' Set the protocol for each control.   wsListen.Protocol = sckTCPProtocol   wsClient.Protocol = sckTCPProtocol   ' Set the remote host on the client Winsock control. Because   ' client and server are the same computer in this example, set   ' RemoteHost equal to LocalIP.   wsClient.RemoteHost = wsListen.LocalIP   ' Set a local and a remote port for the client.   wsClient.RemotePort = 100   wsClient.LocalPort = 99   ' Set a local and a remote port for the server. Note that the   ' server RemotePort is the client LocalPort and vice versa.   wsListen.LocalPort = 100   wsListen.RemotePort = 99End SubPrivate Sub cmdListen_Click()   ' Start the server listening for a connection request.   wsListen.Listen   Msgbox "Server is waiting for a connection request."End SubPrivate Sub cmdConnect_Click()   ' The client requests a connection with the server.   Msgbox "Client requested connection with server."   wsClient.ConnectEnd SubPrivate Sub axWinsockListen_ConnectionRequest(ByVal requestID As _   Long)   ' When the server receives a connection request, set the second   ' Winsock on the server to accept the request.   Set wsServer = Me!axWinsockServer.Object   wsServer.Protocol = sckTCPProtocol   ' Accept the connection request.   wsServer.Accept requestID   Msgbox "Server accepted client connection request."End SubPrivate Sub axWinsockClient_Connect()   ' When the server accepts the connection request, the Connect   ' event fires on the client. Display a message indicating success.   MsgBox "Connection Successful!"End SubPrivate Sub cmdSend_Click()   ' After a connection is established, use a command button to send   ' data from client to server.   wsClient.SendData "Hello"End SubPrivate Sub axWinsockServer_DataArrival(ByVal bytesTotal As Long)   Dim strClientMsg As String   ' The DataArrival event fires on the server when the client sends   ' information. Get the data and display it in a text box.   wsServer.GetData strClientMsg, vbString   Me!Text1.Value = strClientMsgEnd SubPrivate Sub cmdRespond_Click()   ' Send a message from the server to the client.   wsServer.SendData "Thanks for the message!"End SubPrivate Sub axWinsockClient_DataArrival(ByVal bytesTotal As Long)   Dim strServerMsg As String   ' The DataArrival event fires on the client when the server sends   ' information. Get the data and display it in a text box.   wsClient.GetData strServerMsg   Me!Text1.Value = strServerMsgEnd SubPrivate Sub cmdClose_Click()   ' Close the server connections   wsServer.Close   wsListen.Close   Msgbox "Server connections closed."End SubPrivate Sub axWinsockClient_Close()   ' Close event on client fires after server closes connection.   ' Close the client connection and display a message box.   wsClient.Close   MsgBox "Client connections closed. Good-Bye!"End Sub					
  6. Enregistrez et fermez TCPForm.
  7. Ouvrez TCPForm en mode formulaire et réaliser les tâches suivantes :
    1. Cliquez sur le bouton d'écoute pour démarrer le serveur dans une demande de connexion à l'écoute.

      Notez le message qui s'affiche pour indiquer que le serveur est en attente d'une connexion.
    2. Cliquez sur le bouton Établir la connexion.

      Remarque la boîte de message à partir du client de vérifier que la connexion a réussi et la boîte de message à partir du serveur de vérifier que la demande a été acceptée.
    3. Cliquez sur le bouton Envoyer les données et notez que le message de client «Hello» s'affiche dans la zone de texte sur le formulaire.
    4. Cliquez sur le bouton répondre et notez que le message du serveur "Merci pour le message!" s'affiche dans la zone de texte.
    5. Cliquez sur le bouton Fermer la connexion et notez les messages de client et serveur indiquant que les connexions ont été fermées.

Exemple 2: utilisation du contrôle de ActiveX Winsock avec UDP

Cet exemple utilise le même ordinateur pour envoyer et recevoir des données. Vous créez un formulaire avec deux contrôles Winsock : un des contrôles émule l'ordinateur client et l'autre contrôle émule le serveur.
  1. Créer une nouvelle base de données vide nommée WinsockDemo.mdb ou utiliser la base de données que vous avez créé dans l'exemple précédent.
  2. Créer le nouveau formulaire suivant (ne pas basé sur n'importe quelle table ou requête) en mode création :
       Form: UDPForm   --------------------------------   Caption: UDP Form   Command button:     Name: cmdSend        Caption: Send Data     Text box:        Name: Text1        Label Caption: Data Received:     Winsock control:        Name: axWinsockClient     Winsock control:        Name: axWinsockServer					
  3. Dans le menu affichage, cliquez sur code.
  4. Tapez la ligne suivante dans la section déclaration de module de classe du formulaire :
    Dim wsClient, wsServer As Winsock					
  5. Tapez les procédures suivantes.

    Pour illustrer optimale le Winsock fonctionnement du contrôle entre client et serveur, les procédures sont répertoriés dans l'ordre dans lequel ils se produisent.
    Private Sub Form_Load()   ' Set the control objects when the form loads.   Set wsClient = Me!axWinsockClient.Object   Set wsServer = Me!axWinsockServer.Object   ' Set the protocol for client and server.   wsClient.Protocol = sckUDPProtocol   wsServer.Protocol = sckUDPProtocol   ' Set the host and ports for client and server. Because client   ' and server are the same computer in this example, set RemoteHost   ' equal to LocalIP.   wsServer.RemoteHost = wsClient.LocalIP   wsServer.RemotePort = 1007   wsClient.Bind 1007End SubPrivate Sub CmdSend_Click()   ' Send a broadcast message from the server.   wsServer.SendData "Hello"End SubPrivate Sub axWinsockClient_DataArrival(ByVal bytesTotal As Long)   Dim strServerMsg As String   ' When a message arrives from the server, display it in a text   ' box.   wsClient.GetData strServerMsg, vbString   Me!Text1.Value = strServerMsgEnd Sub					
  6. Enregistrez et fermez le formulaire UDPForm.
  7. Ouvrez UDPForm en mode formulaire et cliquez sur le bouton Envoyer les données.

    Notez que la zone de texte affiche «Hello». Étant donné qu'il s'agit d'une transmission sans connexion, vous ne devrez pas établir une connexion client-serveur.
ODE

Avertissement : Cet article a été traduit de manière automatique

Propriétés

ID d'article : 209905 - Dernière mise à jour : 01/11/2015 02:04:57 - Révision : 2.0

  • Microsoft Access 2000 Standard Edition
  • kbnosurvey kbarchive kbmt kbhowto kbinfo kbusage KB209905 KbMtfr
Commentaires