CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[socket] serveur multi-clients

delafayette
delafayette
Niveau 10
31 octobre 2007 à 10:16:24

Bonjour,
J´ai récemment appris le principe des sockets, et je suis parvenu à créer mon premier chat à deux et à distance.
J´aimerais maintenant créer un serveur multiclients, le problème étant que lorsque je connecte un second client, il n´a pas la possibilité d´entrer un message puisque le serveur est déjà entré dans une boucle qui gère les échanges du premier client...
Comment puis-je faire pour accueillir les autres clients?
Me conseillez-vous d´utiliser les threads (je ne connais pas bien du tout ces derniers) si c est le cas, auriez-vous de bon tutos pour que je puisse voir, ou mieux, une source que je puisse changer à ma façon? Je trouve que c´est souvent le mieux de modifier une source pour comprendre le fonctionnement! C´est d´ailleurs ce qui m´a permis de comprendre clairement le principe des sockets.
Merci d´avance pour votre aide :)

dnob700
dnob700
Niveau 10
31 octobre 2007 à 13:21:45

Il y a 3 méthodes. Tout d´abord, le plus mauvaise : utiliser des sockets non bloquant (i.e. quand tu essaye de lire sur une socket, ça ne bloque pas le programme s´il n´y a rien à lire). Mais c´est très lent et pas recommandé du tout. La deuxième méthode qui peut être pas mal c´est effectivement d´utiliser plusieurs thread ou plusieurs processus par faire ton programme. Mais là aussi ça demande pas mal de ressource. C´est pourquoi cette méthode est souvent mélangée à la dernière, que je te recommande d´utiliser. Il s´agit d´utiliser la fonction "select". Tu lui passe une liste de socket, et la fonction bloque jusqu´à ce qu´il y ai des données à lire sur l´un des sockets que tu lui as donné et elle te renvoie le socket sur lequel il faut lire. Ça permet de gérer plusieurs socket avec une seule boucle de message.

delafayette
delafayette
Niveau 10
31 octobre 2007 à 13:55:27

Merci beaucoup, je pense que je vais tenter select :)
Je vais googler pour voir ce que c´est, si tu peux m´apporter un tuto/site interessant ou une source, je prends avec plaisir ;)
merci encore!

dnob700
dnob700
Niveau 10
01 novembre 2007 à 00:14:07

quel langage ?

delafayette
delafayette
Niveau 10
01 novembre 2007 à 17:36:42

Langage C.

dnob700
dnob700
Niveau 10
01 novembre 2007 à 20:34:51

La référence en tuto sur les socket c´est :
http://beej.us/guide/bgnet/
Ça date un peu, mais c´est toujours exacte.

Mais s´il s´agit juste d´utiliser la fonction select, le man ou la msdn selon ton système devrait te suffire.

delafayette
delafayette
Niveau 10
02 novembre 2007 à 21:33:00

merci! je vais voir du coté de msdn.

delafayette
delafayette
Niveau 10
02 novembre 2007 à 21:35:10

http://www.chez.com/vidalc/lf/socket.html
j ai vu qu´ils en parlaient ici, j´y file.

dnob700
dnob700
Niveau 10
03 novembre 2007 à 00:07:06

c´est le même lien que celui que je t´ai donné (il apparait sur la page que je t´ai passé sous la nom "French" dans la rubrique "Translations").

Comme quoi, tu aurais pu regarder un peu ...

delafayette
delafayette
Niveau 10
03 novembre 2007 à 10:44:43

Oui je sais :rire:
J´ai juste redonné le lien en français :)

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment