Accueil > Forum > > > > TCP/IP
TCP/IP
mardi 4 novembre 2003 à 11:54:34 |
TCP/IP

maitrez
|
Bonjour à tous, je suis en train de créer une appli client et une appli serveur. L'appli client est un jeu qui représente pour l'instant une petite voiture. Elle se connecte sur le serveur, et lorsqu'il y a deux clients connectés, ils se voient mutuellement. Mon problème est que les envois de coordonnées d'un client à l'autre (en passant par le serveur) est tres lent. Le client 1 envoit ses coordonnées au serveur qui lui, renvoit tout ça au client 2. Pour faire l'application serveur, je suis parti d'un prog que j'ai trouvé sur cppfrance (lanchat je crois). En cherchant un peu d'où mes problèmes pouvaient venir, j'ai compris qu'il créait un thread par client connecté. Je voudrais savoir si c'est une bonne méthode, ou s'il vaut mieux uniquement créer un seul thread qui servira à écouter. D'où un deuxième question: Lorsque plusieurs clients envoient énormément d'infos au serveur, peut-on être sûr qu'il traitera tous les messages reçus, meme s'il prends du retard dans son traitement? Merci pour vos réponses MzF
|
|
mardi 4 novembre 2003 à 12:27:21 |
Re : TCP/IP

Anacr0x
|
plutot qu'un thread par client, utilise select() ou WSAAsyncSelect()
regarde la, ca pourra peut-etre t'aider : http://www.cppfrance.com/article.aspx?Val=2276
|
|
mardi 4 novembre 2003 à 12:46:53 |
Re : TCP/IP

aardman
|
Salut, Ou mieux, WSAEventSelect().
|
|
mardi 4 novembre 2003 à 14:01:05 |
Re : TCP/IP

maitrez
|
Cool, merci :) par contre, je pense que ça va me faire changer pas mal de choses dans mon appli serveur... M'enfin, du moment que ça marche.... ;)
C'est quoi en gros, le principe de ces fonctions? (Select, WSAAsyncSelect et WSAEventSelect) elle doivent remplacer quoi?
A+ MzF
|
|
mardi 4 novembre 2003 à 18:01:32 |
Re : TCP/IP

aardman
|
Salut, Elle remplacent rien, c'est juste des modeles d'utilisation de winsock. Select(...) te permet de gerer plusieurs clients dans un seul thread, et apres reflexion je me suis dit comme Anacrox que c'etait la meilleure solution a ton probleme (car ca marche bien et assez simple a utiliser). WSAAsyncSelect(...) est bien pour faire des clients avec interface graphique, mais rien de plus (avis perso). WSAEventSelect(...) te permet de faire comme select, mais c'est plus compliqué (avec de meilleures performances bien entendu). Y'en a d'autres encore, mais j'en parle pas car je les connais pas trop.
|
|
mardi 4 novembre 2003 à 23:30:22 |
Re : TCP/IP

maitrez
|
Hello,
merci pour la précision. Par contre, je recherche quand meme la performance, même si je dois passer un peu plus de temps à comprendre comment ça fonctionne. C'est beaucoup plus complexe ou ça se comprend bien quand même? Autre chose, mes clients sont avec des interfaces graphiques puisqu'il s'agit d'un jeu qui se connecte à un serveur online.
A+ MzF
|
|
mardi 4 novembre 2003 à 23:57:47 |
Re : TCP/IP

aardman
|
Salut, Niveau performance, si tu as peu (<100) de client tu verra pas la difference entre les 2. WSAEventSelect(...) utilise des threads, select(...) pas obligatoirement. Pour moi le choix est vite fait quand on connait les problemes que les threads peuvent poser.
Sinon, un truc completement a part, c'est que le protocol UDP est plus rapide que TCP, et comme tu ne va envoyer que des coordonnées de temp en temp je pense que c'est plus adapté (avis perso).
|
|
mercredi 5 novembre 2003 à 12:45:52 |
Re : TCP/IP

maitrez
|
Re,
ok pour la première partie de ton post... en fait, à terme il devrait y avoir plus de 100 clients... Enfin, dans un premier temps, ça peut largement suffir.
Par contre, pour la deuxieme partie, le protocole UDP est bien en non-connecté, c'est ça? Le truc, c'est que le jeu envoi sans cesse au client des tas de choses, les coordonnées sont sans cesse changeantes... donc chaque client envoi beaucoup de données au serveur et lui-meme renvoit à beaucoup de clients... alors? UDP ou TCP ? that is the question ;)
A+ MzF
|
|
mercredi 5 novembre 2003 à 13:35:40 |
Re : TCP/IP

aardman
|
Salut, UDP est non connecté en effet, c'est a dire moins securisé mais legerement plus rapide (pas de connexion a établir, pas d'accusé de reception, etc...).
|
|
mercredi 5 novembre 2003 à 14:02:12 |
Re : TCP/IP

maitrez
|
Ouaip, mais il me semblait que les jeux étaient plutot basés sur du tcp plutot que de l'udp... Je te remercie pour tous ces détails, je vais essayer de partir sur le Select (ou p-e le WSAEventSelect). J'espère que je trouverai des exemples d'utilisation de ces fonctions, et que je pourrai adapter mon prog en conséquences...
A+ MzF
|
|
Cette discussion est classée dans : appli, serveur, client, ip, tcp
Répondre à ce message
Sujets en rapport avec ce message
Client/Serveur TCP/IP [ par shinji09 ]
Bonjours, je suis entrain de faire un client/serveur dans le cadre d'un projets, alors j'arrive a faire ma liaison, a recevoir des données, par contre
Serveur TCP/IP en Dynamic C [ par joffreycolors ]
Bonjour,j'aurais voulu savoir si quelqu'un aurais un serveur TCP/IP en C ou encore mieu en Dynamic Cje n'arrive pas a en trouver..mon client est fait
programmation socket [ par hanaw ]
Comment écrire un programme simple communication client serveur en TCP/IP en C qui retourne au serveur un message contenant l'adresse IP du client.
Probleme Communication CLIENT SERVEUR FTP [ par kididouille ]
Bonjour, je voudrais savoir comment dire à un client qu'un serveur accepte sa demande de connexion? Mon client: Filezilla Mon serveur: en cours de
Question sur l'héritage [ par hnouna2007 ]
salut, D'après mes connaissances, quand on défini une classe dérivée, son constructeur appelle automatiquement celui de la classe de base. Ce que j'ai
Serveur TCP/IP [ par Zestyr ]
Quand on fais fctnner un serveur, il faut le débloquer du par feu et configurer le modem, y a t'il un moyen pour automatiser ces manip ou contourner
la bande passante disponible entre le client et le serveur en tcp [ par coolol ]
Bonjour, je veux savoir comment faire pour calcule la bande passante entre le client et le serveur en Tcp sous linux avec le langage C, et comment tr
problème serveur TCP en C [ par lenneth666 ]
Bonjour j'ai essayé de faire un client server TCP en C mais mon serveur bloque a l'instruction suivante : client_socket = accept( ma_socket,(struct
Identifier un Client via Socket IP - C++ [ par Jeff_Trek ]
Bonjour,J'utilise un Serveur (Socket IP), J'aimerais identifier les clients qui se connecte et déconnecte.Je connais les adresses IP des clients.Si Cl
Client - Serveur . TCP [ par sebounty ]
Bonjour,Je suis, comme qui dirais debutant en Programmation C, C++.Aujourd'hui j'aimerais réaliser un Client Serveur TCP, Cependant, tous les codes qu
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|