IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau C Discussion :

Un serveur UDP peut-il faire des sendto ?


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    la_tupac
    Invité(e)
    Par défaut Un serveur UDP peut-il faire des sendto ?
    Salut a tous, je pense que le titre dit tout.
    J'ai un serveur de jeu qui recoi les info clients en TCP et envoi les infos en TCP aussi. Mais je voudrais passer les envois en UDP pour accelerer le débit.
    Cependant, je ne connais pas trop le principe. Je sais qu'il faut binder le serveur et je pense que le serveur ne peut que faire des recv().
    Est-ce vrai ou y'a t-il une astuce pour faire des sendto?
    Parce-que si j'ouvre un srv UDP sur le programme client, il faudra natter un port sur le routeur juste pour jouer !! pas top !

    Merci de vos lumières car l'UDP est plus compliqué que le TCP c'est clair !

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Pour répondre à ta 1ere question, oui un serveur UDP peut faire des sendto() et heureusement encore !!

    Sinon, pour ton cas, je ne comprends pas vraiment pourquoi tu veux passer de TCP à UDP. Il me semble que TCP est plus indiqué pour ta problématique.

    Si un de tes joueurs se déconnecte brutalement, tu le sauras avec TCP mais tu n'en seras jamais informé avec UDP.

    TCP a plein d'autres avantages (garantie d'acheminement et de séquencement entre autres).

    TCP est moins rapide que UDP ? A voir. Moins lourd et gourmand en ressources, ca c'est sûr mais on n'a rien sans rien.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    la_tupac
    Invité(e)
    Par défaut
    Merci ram t'est du genre rapide
    en fait en TCP ca vas bien j'usqua maintenant
    Mais on m'a dit que le fait qu'il n'y ai pas d'accusé de reception en UDP permétait d'envoyer un packet sans attendre le retour du précédent donc un gain de temps énorme sur le net. Mais peut-être est-ce faux !!!!

  4. #4
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Salut,
    Citation Envoyé par la_tupac Voir le message
    Mais on m'a dit que le fait qu'il n'y ai pas d'accusé de reception en UDP permétait d'envoyer un packet sans attendre le retour du précédent donc un gain de temps énorme sur le net. Mais peut-être est-ce faux !!!!
    Nonon, c'est bien vrai (enfin, "temps enorme" peut etre pas quand meme).
    Par contre, ce n'est pas non plus une solution miracle: tu augmentes ton debit mais tu n'as aucune garantie que le client recoive bien tous les paquets envoyes. A toi de voir si c'est un probleme ou pas. Pour un jeu en reseau, a priori le TCP semble plus indique...

  5. #5
    la_tupac
    Invité(e)
    Par défaut
    Merci tonton ^^
    j'ai prévu des gros packets contenant tout ce qu'il faut dedans (type d'action, id du perso concerné ... donc pas de soucis si un packet se perd en route. Je me suis renseigné le plus possible sur l'UDP et j'ai anticipé la perte de packets mais je bloque sur la connexion en fait
    Comme je l'explique au début, ce que je ne comprends toujours pas c'est coment un serveur udp bindé peut faire un sendto alors qu'il n'est pas censé connaitre l'adresse du client ??

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par la_tupac Voir le message
    Comme je l'explique au début, ce que je ne comprends toujours pas c'est coment un serveur udp bindé peut faire un sendto alors qu'il n'est pas censé connaitre l'adresse du client ??
    En fait, un serveur quand il reçoit un paquet fait un recvfrom().

    Si tu regardes un peu l'appel système, un des paramètres est justement l'adresse de la structure permettant de récupérer l'adresse de l'émetteur. Il suffit de récupérer cette structure et de l'utiliser pour faire le sendto().

    Par contre, dans ton cas, je persiste à dire : TCP
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  7. #7
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par la_tupac Voir le message
    Salut a tous, je pense que le titre dit tout.
    J'ai un serveur de jeu qui recoi les info clients en TCP et envoi les infos en TCP aussi. Mais je voudrais passer les envois en UDP pour accelerer le débit.
    Au risque de perdre des données...

    Cependant, je ne connais pas trop le principe. Je sais qu'il faut binder le serveur et je pense que le serveur ne peut que faire des recv().
    Il ne peut faire que des recvfrom() et des sendto() suite à un recvfrom().

Discussions similaires

  1. Peut-on faire des tableaux de bits
    Par fomazou dans le forum Débuter
    Réponses: 6
    Dernier message: 31/01/2009, 01h31
  2. Peut-on faire des cumuls dans une requete ?
    Par kikidrome dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 20/03/2008, 16h12
  3. Réponses: 6
    Dernier message: 11/12/2007, 17h55
  4. Peut on faire des scripts vb en delphi
    Par neuneu1 dans le forum Delphi
    Réponses: 22
    Dernier message: 20/04/2007, 09h52
  5. Peut-on faire des colonnes avec "div"
    Par lodan dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 30/07/2006, 06h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo