Meilleur Socket multi-client

cs_Mick7 Messages postés 54 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 18 avril 2007 - 12 mars 2006 à 20:07
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014 - 15 mars 2006 à 19:22
salut,

je voudrais savoir qu'elle est la meilleur façon de creer des socket
multi-client parceque j'ai entendu parler des Threads, de WSA et je
crois qu'il y a d'autre facon mais je ne sais pas laquelle est la plus
performante

Merci

8 réponses

dark_naruto25 Messages postés 127 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 9 mai 2011
13 mars 2006 à 08:27
Il me semble que :
- WSA sont les API Socket pour Windows
- les threads n'ont aucun rapport avec les sockets
Le mieux est je pense de se lancer dans les sockets tout court, qui à pour entête socket.h je crois. Ton code sera déjà un peu plus portable.
Les threads pourront te servire à gérer une connection.
Il faut bien apprendre ce que tous ces choses sont pour les utiliser.

En espèrant t'avoir aidé correctement...
0
cs_Mick7 Messages postés 54 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 18 avril 2007
13 mars 2006 à 17:45
non c'est pas a ca que je pensai.

voila je veux faire un serveur qui puisse recevoir des message de
plusieurs client mais je ne sais pas qu'elle est la methode la plus
efficace :

-si il faut utiliser les threads et comment les utilisé dans ce cas précis

-si il faut utiliser les socket non bloquand mais je sais pas comment ca marche

-et il me semble qu'il y a une autre methode mais je ne sais pas laquelle
0
dark_naruto25 Messages postés 127 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 9 mai 2011
13 mars 2006 à 22:50
Eh bien grossièrement dit, les threads te permettent de faire plusieurs
choses en même temps. Donc il suffit de programmer des sockets non
bloquantes, et donc que tu puisses en accepter plusieurs à la fois. Une
fois une connection faites, tu lance un thread qui s'occupera de la
connection.

Pour se qui est de savoir programmer tous ça, il y a des codes sur le site, et sur bien d'autre.
0
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
14 mars 2006 à 05:38
Il y a la méthode de "port completion" dont je comprends absoluement rien, faut dire que j'ai pas fait d'effort pour la comprendre non plus (je m'acheterai un livre parce lire à l'écran une brique c'est ...). Cependant, je te donne des références pour t'aider, un livre électronique sur les sockets. Les threads c'est surtout utilisé quand chaque client demande quelque chose de gourmand (serveur FTP par exemple ou WEB) mais tu peux les utilisers sans problème dans un petit programme sachant que c'est pas la méthode la plus éfficace dans ces cas là (le e-livre démontre l'éfficacité avec un beau tableau détaillé). Tu crées un Thread avec un socket blocant par client et hop le tour est joué ! Si tu veux faire des opérations sur tout les clients (ce que tu ne mentionnes pas) tu peux utiliser un thread à part ou le thread du processus principal. Cependant, (très très très très très très très)^2+1 important que tu étudis la synchronisation en premier (je connais pas ton niveau en C, mais Points CS : 27 pts) car sinon ton programme va planter de façon aléatoire lors des ressources partagés comme les tableaux de mémoires qui changent dynamiquement. (Indice : CriticalSection, Sémaphore, Event, Mutex pour aider à ta recherche). Regarde les mailslot et pipe aussi, je connais pas exactement tes intentions lors ... (Mais ils ne sont pas portable alors fait gaffe)

Je termine avec des références
Si tu lit bien l'anglais :

http://betouchi.free.fr/doc_et_ebook/prog_reseau/network2.chm
Exemple
http://betouchi.free.fr/doc_et_ebook/prog_reseau/exemples-network2.zip
Je te dis bonne prog et bonne chance.

A+

http://vbaddons.free.fr

if (CPossible)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Mick7 Messages postés 54 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 18 avril 2007
14 mars 2006 à 19:51
ok merci mais le truc c'est que l'anglais c'est pas trop mon truc mais sinon j'ai une petite question.

Plusieurs application peuvent-elles se servirent de la meme socket pour communiquer?
0
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
14 mars 2006 à 21:54
Le port est utilisable par une application à la fois, si tu veux te servir d'un même socket déjà créer par une autre Appli et bien je t'avouerais que je ne n'ai jamais essayé, alors je sais pas. Si jamais tu trouves pas de réponses à cette question tu peux chercher un peu ou reposter un message sur le forum avec cette question.

A+
Bonne prog

http://vbaddons.free.fr

if (CPossible)
0
cs_Mick7 Messages postés 54 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 18 avril 2007
15 mars 2006 à 13:02
k mais j'ai encore une tite question 2 apli ne peuvent pas utilisé le
meme port mais est-ce que 2 socket peuvent utilisé le meme port?
0
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
15 mars 2006 à 19:22
Tu peux utiliser un port d'écoute qui va ensuite rediriger la connexion sur un autre socket et va se remettre en écoute en attendant une autre connexion. Donc grossièrement tu peux.

http://vbaddons.free.fr

if (CPossible)
0
Rejoignez-nous