Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3110 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [c++] Server multi user

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c++] Server multi user

n°274462
NerOcrO
PrOut
Posté le 21-12-2002 à 15:44:59  profilanswer
 

J'suis en train de me faire un petit serveur multi user mais j'ai un peu de mal à gérer tout ça.
Est-ce que vous avez des sources interressantes ?


---------------
Mieux vaut partir sur des rires de qualités que sur un silence de quantité.
mood
Publicité
Posté le 21-12-2002 à 15:44:59  profilanswer
 

n°275024
NerOcrO
PrOut
Posté le 23-12-2002 à 09:32:51  profilanswer
 

Ouais, ça serait kool quand même, juste des petites explication sur les sockets pour gérer le multi user.


---------------
Mieux vaut partir sur des rires de qualités que sur un silence de quantité.
n°275032
darklord
You're welcome
Posté le 23-12-2002 à 09:58:34  profilanswer
 

parce que tu fais des serveurs pour un seul client toi?


---------------
Just because you feel good does not make you right
n°275035
NerOcrO
PrOut
Posté le 23-12-2002 à 10:15:05  profilanswer
 

Bah non justement j'essaye d'en faire un pour plusieurs, mais je crois que j'ai un problème au niveau de l'utilisation de la socket. Peutx tu m'aider ?


---------------
Mieux vaut partir sur des rires de qualités que sur un silence de quantité.
n°275152
*syl*
--> []
Posté le 23-12-2002 à 14:01:16  profilanswer
 

C'est pas compliqué, quand ton serveur accepte (accept()) un client, tu récupères une socket, tu l'associes un thread à cette socket et voilà, t'as ton serveur multi-user. :)

n°275162
NerOcrO
PrOut
Posté le 23-12-2002 à 14:14:13  profilanswer
 

Oui c'est ce que j'ai fait mais c'est au niveau de l'envoyage du message à tout le monde que sa foire.


---------------
Mieux vaut partir sur des rires de qualités que sur un silence de quantité.
n°275238
*syl*
--> []
Posté le 23-12-2002 à 18:14:31  profilanswer
 

NerOcrO a écrit :

Oui c'est ce que j'ai fait mais c'est au niveau de l'envoyage du message à tout le monde que sa foire.

J'adore ton français ! :D
 
T'as un fonctionnement 1 client = 1 thread avec des recv() bloquant donc une fois que t'as lu des données, faut l'envoyer aux autres puisque ça à l'air d'être un chat, moi je pense que je ferais un thread à part, ayant bien sûr connaissance des sockets clientes et après ton recv() dans le thread client, tu fais un PostThreadMessage() avec en param un pointeur vers les données à envoyer ainsi que le pointeur de ta socket pour éviter que le serveur envoie le message envoyé par le client.. Pense aux structures pour ce dernier point..
 
J'espère avoir été clair :)

n°275446
NerOcrO
PrOut
Posté le 24-12-2002 à 11:34:17  profilanswer
 

Ca à l'air bien compliqué ton truc.
Moi j'ai un thread qui tourne en boucle et qui attend les clients. Quand un client ce connecte, un thread se crée pour attendre son message. Quand un message est envoyé par ce dernier, ce même thread renverai à tous les autres connectés, est-ce possible ?
(faut-il faire un tableau de socket ?)


---------------
Mieux vaut partir sur des rires de qualités que sur un silence de quantité.
n°275481
*syl*
--> []
Posté le 24-12-2002 à 12:48:39  profilanswer
 

C'est une autre solution, il suffit que tous les threads aient connaissances de la liste des sockets clientes..
A ce moment là, tu passes en paramètre de ton thread la socket associée à ce thread ainsi que la liste des autres sockets, ces 2 choses encapsulées bien sûr dans une structure.. :)

n°275491
NerOcrO
PrOut
Posté le 24-12-2002 à 13:29:41  profilanswer
 

Mok, mais c'est au niveau de la structure que je vois pas.


---------------
Mieux vaut partir sur des rires de qualités que sur un silence de quantité.
mood
Publicité
Posté le 24-12-2002 à 13:29:41  profilanswer
 

n°275494
*syl*
--> []
Posté le 24-12-2002 à 13:41:20  profilanswer
 

bah t'auras une structure de ce type a passer en paramètre de ton thread :
 
struct l_socket{
  socket *ptrSock ;  
  l_socket *ptrNext ;
}
 
struct list_socket{
  socket *ptrMySock ; //Socket associée au thread
  l_socket **ptrList ; // Liste chaînée contenant la liste de toutes les sockets
}
 
Là j'ai pris une liste chaînée mais tu peux très bien utiliser la STL..
C'est + clair ?

n°275527
NerOcrO
PrOut
Posté le 24-12-2002 à 14:21:59  profilanswer
 

Ouah!!!, ça devient balèze là.
1/ Je sais pas ce qu'est la STL.
2/ Je vais voir si j'arrive à faire quelque chose avec ta liste.
Merci.


---------------
Mieux vaut partir sur des rires de qualités que sur un silence de quantité.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [c++] Server multi user

 

Sujets relatifs
virer un user dans une base SQLserverident failed for user machin?? d'où ça vient (Postgres inside)[résolu]
[SQL SERVER] Paramètre dans un DTSMS SQL Server 2000 et Mysql
Multi-langue[SQL SERVER] sécurisation des utilisateurs
[PHP] Variable $REMOTE_USERutiliser phpmyadmin en multi-utilisateur
[PHP] Récupérer les variables dans une page sur un autre serverRecherche Doc sur MDX avec SQL Server
Plus de sujets relatifs à : [c++] Server multi user


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR