cs_Kite37
Messages postés242Date d'inscriptionlundi 6 mars 2006StatutMembreDernière intervention17 janvier 2018
-
30 mai 2006 à 18:07
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024
-
31 mai 2006 à 08:38
Hellow !
Je tente de créer un logiciel de chat (original n'est-ce pas :p) afin de mettre en pratique mes connaissances en sockets et autres liaison internet.
Cependant, je me posais une question toute simple : si je veux connecter plusieurs client a mon serveur, dois-je le faire sur des ports différents? et si oui, comment faire pour savoir quel port peut etre utilisé?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 30 mai 2006 à 18:28
Salut
(c'est du Net alors je ne pourrais te donner d'exemple précis, désolé)
Non.
Quand ton serveur est en écoute (.Listen) sur un port, il reçoit les demandes de connexion.
Si tu veux gérer plusieurs clients, il ne faut pas accepter la requète tout de suite :
Il faut créer une nouvelle instance de ton Winsock, puis de faire le "Accept" sur cette nouvelle instance.
Le "Accept" fera que le nouveau Winsock choisira lui même un port libre pour la connexion avec le client, port différent de celui d'écoute, bien sûr.
Le Winsock en écoute restera donc en écoute, prêt à recevoir d'autres demandes.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accro
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 31 mai 2006 à 08:38
Bonjour
En .NET, tu as 2 objets : TcpListener(ou server) et TCPClient.
Pour écouter tu dois utiliser TcpListener, tu lui donne un port d'écoute, tu fais un Start (méthode), puis tu utilise l'aide pour plus de renseignement (j'ai pas la doc ici).
Ensuite tu récupère un TcpClient (ou un socket, c'est au choix), et tu l'utilise.
Je te conseille d'utiliser des thread pour ton serveur et tes clients (TcpClient), pour éviter de "geler" ton application maitre.
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)