Un exemple de serveur

0/5 (5 avis)

Vue 5 621 fois - Téléchargée 969 fois

Description

voici un exemple simple montrant comment realiser un serveur en visual basic

vous pourrez decouvrir de nombreux autres composants relatifs aux connections reseaux tels que Inet, WebBrowser, etc ...

Source / Exemple :


Private Sub Client_Close() 'le client clôt volontairement la connection
    Client.Close
    Shape1.BackColor = vbRed
End Sub

Private Sub Client_DataArrival(ByVal bytesTotal As Long)
    Client.GetData stmp, , bytesTotal
    Client.SendData stmp 'on renvoi au client se qu'il nous a envoyer
End Sub

' une erreur d'envoi ou de reception a eu lieu
Private Sub Client_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
    Client.Close
    Shape1.BackColor = vbRed
End Sub

Private Sub Form_Load()
    Server.LocalPort = 54321
    Server.Listen 'a ce stade le serveur est lancé, et en attente de client
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Server.Close
    Client.Close
End Sub

Private Sub Server_ConnectionRequest(ByVal requestID As Long)
    If Client.State = sckConnected Then 'un client est deja connecté
        Temp.Accept requestID
        Temp.Close 'on refuse la nouvelle connection
    Else
        Client.Accept requestID
        Shape1.BackColor = vbGreen
    End If
End Sub

Conclusion :


ce type de serveur est appelé serveur ECHO, car il renvoi au client tout ce que celui-ci lui envoi.
Vous pouvez tester ce serveur avec telnet en tapant : "telnet localhost 54321"

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010

Merci
Il y a très très très longtemps que j'ai pensé à la solution numéro 2, pour Jenny.
Messages postés
25
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
21 mars 2005

Yep !

Deux solutions pour toi :

- la première serait de te créer une adresse style DynDns qui corresponde à ton Ip et qui serait mise à jour à chaque démarrage de ta machine... mais tu ne veux pas forcément être le serveur donc ce n'est pas top.

- l'autre solution consiste à utiliser une page web sur un serveur permanent qui contiendrait les adresses des personnes qui lance ton programme.
Messages postés
334
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2010

J'ai réalisé un programme de chat avec Winsock qui fonctionne bien. Par compte, on doit donner son IP au «client » pour ce connecter qui n'est pas terrible.

Comme la personne ne connais pas le IP du « serveur », il devra scanner 000.000.000.000:4000 à 999.999.999.999:4000, jusqu'à qu'il soit accepté ?

C'est très long Grr!! ????

Je ne vois pas de solution car mon IP change et je ne suis pas forcément connecté.
Ci la personne que je ne connais pas, lance mon programme « serveur » car il n'a pas trouvé de « serveur ».
Comment je peux me connecter sur son « serveur » ci je ne le connais pas ?
Messages postés
656
Date d'inscription
mercredi 22 août 2001
Statut
Membre
Dernière intervention
11 mars 2005
13
remplace text1.text = i par text1.text = text1.text & i
car sinon tu reinitialise ton champs de texte avec les donnees recemment recues.
il se peut que windows ne te retransmette pas les 2920 caracteres d'un seul coup
Messages postés
362
Date d'inscription
mardi 18 décembre 2001
Statut
Membre
Dernière intervention
24 août 2012

lut j'ai un ptit probleme pour un truc dans le meme genre en fait le client m'envoi plein de donnée ( plus de 2920 caractères ) et je ne recoit pas tout ce qui est après les 2920 caractère.

donc je fait comme ca:

Private Sub winsock_DataArrival(ByVal bytesTotal As Long)
winsock.GetData i, vbstring , bytesTotal
text1.text = i
winsock.close
End Sub

es ce que tu sais comment fair pour recevoir toute les données ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.