[Visual Basic] - Serveur de tchat

Ecrit par logik, le 17 May 2005 dans la catégorie Programmation

1. Introduction

Dans ce tutorial, je vous propose de coder serveur de en Visual Basic. Avant tout, pour programmer dans ce langage vous devez posséder Visual Studio et malheureusement, il est payant. Sans ce logiciel, vous ne pouvez rien faire.

2. Let's Go !

Form
Figure 1 Form


Pour commencer, ouvrez Visual Studio, dans la fenêtre « New Project », choisissez « Standard EXE » et cliquez sur le bouton « Ouvrir ». Vous êtes maintenant devant une page blanche avec une "Form" (c.f. Figure 1).
Maintenant, il faut insérer les différents composants sur notre "Form". Vous trouverez ci-dessous une liste avec tous les éléments qu'il faut insérer et une image pour savoir où les placer.

Liste des composants à insérer :
- Une TextBox pour entrer le port qu'utilisera notre serveur
- Un CommandButton pour valider le port qu'on a entré dans la TextBox
- Une TextBox pour afficher tous les messages du chat
- Une TextBox pour pouvoir entrer le message qu'on veut envoyer
- Un CommandButton pour envoyer le message
- Un CommandButton pour effacer la TextBox qui contient le message (facultatif)
- Un Socket, c'est indispensable pour le chat (Pour l'obtenir : CTRL + T, et cochez Microsoft Winsock Control 6.0)

Eléments
Figure 2 Où placer les éléments ?

Properties
Figure 3 Properties


Pour vous simplifier la tâche, j'ai fait un tableau récapitulatif de ce que vous devez mettre dans les « Properties ».

Name Text Caption MultiLine
1 Port 8889 - False
2 (Vide) - True
3 Message (Vide) - True
4 OK -
5 Send - Envoyer -
6 Clear - Effacer -
7 Socket - - -


Voilà, nous avons fini la « mise en page de notre programme ». Nous allons maintenant passer à la partie la plus intéressante, la programmation.

3. Programmation du serveur

Double cliquez sur le bouton OK, vous devriez obtenir ceci :

Private Sub Port_OK_Click()



End Sub
Cela veut dire que tout ce qui est entre ces deux lignes sera exécuté lorsque l'on cliquera sur le bouton OK. Nous voulons que lorsque l'on cliquera sur ce bouton, le port du socket soit égal à la valeur entrée dans la TextBox « Port ». C'est tout simple, il nous suffit de faire :

Private Sub Port_OK_Click()

Socket.LocalPort = Port.Text

Socket.Listen

End Sub
Voilà, dès qu'on cliquera sur le bouton OK, le port du socket sera égal à la propriété Text de la TextBox « Port ». La ligne « Socket.Listen » dit au socket d'écouter toute connexion sur le port.

Maintenant la programmation du socket :

Dans le menu déroulant, choisissez « Socket » et « ConnectionRequest » comme ci-dessous :



Vous obtenez ces deux lignes :

Private Sub Socket_ConnectionRequest(ByVal requestID As Long)



End Sub
Les instructions qui seront présentent entre ces deux lignes seront exécutées lorsque quelqu'un (le client) tentera de se connecter sur le port du serveur.

Private Sub Socket_ConnectionRequest(ByVal requestID As Long)

Socket.Close

Socket.Accept requestID

Socket.SendData "Vous êtes connecté au serveur"

End Sub
Avant d'accepter le client « Socket.Accept requestID », il faut fermer la socket « Socket.Close ». Pour informer le client qu'il est connecté au serveur, on lui envoie un message « Socket.SendData "Vous êtes connecté au serveur" ».

Maintenant, pour pouvoir dialoguer avec le client, il nous faut programmer le bouton « Envoyer ». Double cliquez dessus, vous obtenez :

Private Sub Send_Click()



End Sub
Pour envoyer un message au client, il faut le code suivant :

Private Sub Send_Click()

Socket.SendData "Serveur> " & Message.Text

Chat.Text = Chat.Text & vbCrLf & "Serveur> " & Message.Text

Message.Text = ""

End Sub
Socket.SendData "Serveur> " & Message.Text, envoie le mot « Serveur> » suivit du message que vous avez entré dans le TextBox « Message ». Ensuite il ajoute le message dans la TextBox « Chat » grâce à « Chat.Text = Chat.Text & vbCrLf & "Serveur> " & Message.Text » et finalement efface la TextBox « Message » avec « Message.Text = "" ».

Nous pouvons envoyer des messages au client mais nous devons aussi recevoir les siens, c'est ce que nous allons programmer maintenant.

Dans le menu déroulant, choisissez « Socket » et « DataArrival » :



Vous obtenez :

Private Sub Socket_DataArrival(ByVal bytesTotal As Long)



End Sub
Les instructions suivantes seront exécutées quand on recevra un message du client.

Private Sub Socket_DataArrival(ByVal bytesTotal As Long)

Dim Data As String

Socket.GetData Data

Chat.Text = Chat.Text & vbCrLf & Data

End Sub
On crée une variable « Data » qui contiendra les messages envoyés par le client avec l'instruction « Dim Data As String ». Ensuite grâce à la socket « Socket.GetData Data », on récupère le message envoyé et on le stocke dans la variable Data. Il ne nous reste plus qu'à afficher tout ça : « Chat.Text = Chat.Text & vbCrLf & Data », fait un enter « vbCrLf » et rajoute le message.

Nous avons presque fini de coder le serveur, il reste plus que le bouton « Effacer » et c'est le plus simple.

Double cliquez dessus :

Private Sub Clear_Click()

End Sub
Pour effacer la TextBox « Message », il suffit de cette instruction « Message.Text = ""», je pense que vous n'aurez aucune difficulté à la comprendre.

Private Sub Clear_Click()

Message.Text = ""

End Sub

Voilà, c'est fini. Vous avez créé le serveur du chat, il ne nous reste plus que le client, je ferais un article bientôt. En attendant vous pouvez telecharger les sources de mon chat. Il y a le client et le serveur. J'ai rajouté quelques options...


Vous pouvez aussi retrouver cet article sur Informatips.

Si vous avez un commentaire à faire à l'auteur de cet article, cliquez ici !