Graphiques
 
- Dégradé
- Animations BitBlt
- Animations Pic
- Contrôle Animation
- Défilement d'image
 
Interface
 
- Barre d'outils
- Barre de progression
- Clignotement
- Interface MDI
- Barre d'état
 
Texte & système
 
- Texte sur image
- Taille variable
- Informations système
 
Fichiers
 
- Grand fichier
- Choix de police
- Dictionnaire Word
- Listes
- Fichiers binaires
 
Souris et touches
 
- Curseur animé
- Touches
 

Création d'un client pour le serveur pour clavardage (2)
  1. La première section de code sera intégrée dans l'événement FORM_LOAD.  Copiez donc le script suivant.

Private Sub Form_Load()
 
  'Recherche des données nécessaires à la connexion au serveur
   Dim V_Chaine As String    
'Déclaration de la variable
   V_Chaine = ""
   V_Chaine = InputBox("Entrez l'adresse IP du serveur (Ex. 200.150.100.34)",_
    "Adresse IP du serveur")  
'Demande de l'adresse IP du serveur
   WS_1.RemotePort = 1001   'Initialisation du port
   WS_1.RemoteHost = V_Chaine  
'Initialisation du port hôte
   WS_1.Connect  
'Connexion
   CA_Principal.Visible = False 
'Objets rendus invisibles
   BO_Connecte.Enabled = False
   RZT_Reception.Visible = False
   ET_Clavardeur.Visible = False
   ET_Nom.Visible = False
End Sub 

  1. Il faut aussi prévoir la déconnexion du serveur lorsque la feuille est fermée. La section de code suivante placée dans l'événement FORM_UNLOAD s'en charge.

Private Sub Form_Unload(Cancel As Integer)
  
'Lorsque le code Logged OUt0123 est envoyé, ne pas déconnecter
   'tant que le nom de l'utilisateur n'est pas enlevé du serveur

   If WS_1.State = sckConnected Then  
'Si Winsock est connecté
      WS_1.SendData ZT_Nommer.Text & "Logged OUt0123"  
'Déconnexion
      DoEvents
   End If
End Sub

  1. Vous allez poursuivre par l'addition d'un script dans la zone de texte ZT_Nommer qui permet d'empêcher l'utilisation des espaces dans le nom du clavardeur et d'activer le bouton BO_Connecte.

Private Sub ZT_Nommer_Change()
  
'Bloquage des espaces dans le nom du chat
   If InStr(ZT_Nommer.Text, " ") Then
      MsgBox "Les espaces ne sont pas permis.", vbExclamation, "Erreur de
--->
      connexion"  
'Avis d'erreur
      ZT_Nommer.Text = ""  
'Vidage de la zone
      BO_Connecte.Enabled = False  
'Désactivation de BO_Connecte
      Exit Sub  
'Sortie de la procédure
   Else
      BO_Connecte.Enabled = True  
'Activation de BO_Connecte
   End If
End Sub

  1. Le bouton BO_Connecte est activé, mais il faut lui attribuer une tâche. C"est le rôle du prochain script qu'on y insère.

Private Sub BO_Connecte_Click()
  
'La connexion envoie le code de connexion IN0123 au serveur
   If Len(ZT_Nommer.Text) > 0 Then  
'On s'assure que la zone n'est pas vide
      If WS_1.State = 7 Then  
'On s'assure que le serveur est en fonction
         WS_1.SendData "Logged In0123" & ZT_Nommer.Text  
'Envoi du nom
         DoEvents
      Else
         MsgBox "Le serveur est temporairement hors fonction", vbExclamation,_
         "Serveur non disponible"  
'Message en cas de serveur inactif
         Exit Sub  
'Sortie de la procédure
      End If
   Else
      MsgBox "Entrez votre identificateur pour commencer.", vbExclamation,_
       "Erreur de connexion"  
'Avis d'erreur si la zone est vide
      ZT_Nommer.SetFocus  
'On donne le focus à ZT_Nommer
      Exit Sub   
'Sortie de la procédure
   End If
End Sub

  1. Passons maintenant au script qu'on doit placer dans le bouton BO_Envoi.

Private Sub BO_Envoi_Click()
 
  'Envoi sur le serveur les données du client
   If WS_1.State = 7 Then
      If Len(RZT_Envoi.Text) > 0 Then  
'Si la zone de texte n'est pas vide
         WS_1.SendData ET_Clavardeur.Caption & ">" & " " & RZT_Envoi.Text
'Envoi-->
         du nom et du message

         RZT_Envoi.Text = ""  
'Vidage de la zone de texte
         RZT_Envoi.SetFocus   
'Retour du focus à la zone de texte
      End If
   Else
      MsgBox "Le serveur est temporairement fermé.", vbExclamation, "Serveur
---> 
      non disponible"  
'Avis de serveur fermé
      Exit Sub 
'Sortie de la procédure
   End If
End Sub

  1. Il faut en outre ajouter une procédure de traitement des données qui sont retournées par le serveur. La procédure ci-dessous s'en charge.

Private Sub WS_1_DataArrival(ByVal bytesTotal As Long)
   Dim V_Chaine As String
'Déclaration de variables
   Dim V_a$
   Dim V_i, V_j As Integer
   WS_1.GetData V_Chaine, vbString
'Réception des données
 
  'Vérifier s'il y a déjà un utilisateur de ce nom
 
  'Dans l'affirmative, aviser la personne et mettre fin à l'application
   If InStr(V_Chaine, "Existing//0123") And ET_2.Caption <> "Un" Then
      MsgBox "Ce nom existe déjà. Recommencez en choisissant un nom différent",
-->
      vbExclamation, "Erreur d
e connexion" 'Message d'erreur
     
End 'Fin du programme
   End If

  
'Ajout de l'utilisateur à une liste
   If InStr(V_Chaine, "Logged") Then
'Si la connexion est effectuée
      ZL_Utilisateurs.Clear
'Liste vidée
      ET_2.Caption = "Un"
'Garde l'indication que l'utilisateur est connecté
      CA_principal.Visible = True
'Affichage du cadre principal
      CA_connection.Visible = False
'Fermeture du cadre de connexion
      RZT_reception.Visible = True
      ET_clavardeur.Visible = True
      ET_nom.Visible = True
      ET_clavardeur.Caption = ZT_nommer.Text
'Affichage du nom du clavardeur
      V_i = InStr(V_Chaine, "*") - 1
      V_Chaine = Left$(V_Chaine, V_i)
      Do Until Len(V_Chaine) <= 1
'Ajoute des utilisateurs à la liste
         V_i = InStr(V_Chaine, "@") - 1
         V_a$ = Left$(V_Chaine, V_i)
         V_Chaine = Replace(V_Chaine, Left$(V_Chaine, V_i + 1), "")
         ZL_Utilisateurs.AddItem V_a$
      Loop

  
'Addition des messages au chat
   Else
      RZT_reception.Text = RZT_reception.Text & V_Chaine & vbNewLine
   End If
End Sub

  1. Le travail est presque terminé. Il ne reste plus que les scripts pour les boutons BO_Réinitial et BO_Déconnecte. Ils sont courts. Les voici.

Private Sub BO_Réinitial_Click()
   RZT_Reception.Text = ""  
'Vidage de la zone de texte de réception
End Sub

Private Sub BO_Déconnecte_Click()
   Unload Me  
'Déchargement de la feuille
End Sub

  1. Téléchargez les deux ressources suivantes dans le même répertoire que le serveur: RICHTX32.ocx et MSWINSOCK.ocx. Ils pourraient être nécessaires au bon fonctionnement de votre application.

  2. Enregistrez votre projet sous le nom donné au début. Créez-en une version .exe. Pour l'essayer, il vous faudra la collaboration d'un ou deux amis. Commencez par charger le serveur sur votre appareil (la version .exe). Donnez l'adresse IP à vos deux camarades et demandez leur de charger le programme client en format .exe et de l'exécuter. Chargez-le aussi vous-même. Clavardez ensuite pendant quelques minutes pour voir si tout fonctionne bien.

Application:

  • Personnalisez l'aspect visuel du serveur en ajoutant un arrière-plan et des couleurs à votre goût.  Enregistrez votre nouvelle version sous le nom  Ex_25bxx.vbp.  Relevez ensuite une amélioration qui pourrait être apportée au logiciel de clavardage et apportez-la.

 

Création d'aide
 
- À propos
- Astuce du jour
 
Cryptage
 
- Mot de passe
- Cryptage de fichier
 
Base de données
 
- Bibliothèque
 
Winsock
 
- Serveur de chat
- Client de chat 1
- Client de chat 2
 
Jeu d'arcade
 
- Interface
- Programmation 1
- Programmation 2
- Programmation 3
- Programmation 4
 
Navigateur WEB
 
- Interface 1
- Interface 2
- Interface 3
- Interface 4
- Programmation 1
- Programmation 2
- Programmation 3
- Programmation 4
© Copyright 2002 - Design : Webmasters-fr.net