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

Développement Discussion :

[ping] tcp plutot que icmp


Sujet :

Développement

  1. #1
    Membre actif Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Points : 274
    Points
    274
    Par défaut [ping] tcp plutot que icmp
    Bonjour,
    pour un jeu programmé en java (multijoueur sur internet), je voudrais
    connaitre le temps de réponse de chaque joueur par rapport au serveur.
    Le but est de connaitre les différence de temps de réponse entre chaque joueur pour ainsi synchroniser leurs actions.
    Le problème c'est que java ne supporte pas l'icmp,mais seulement l'udp et le tcp.
    Est-il possible de faire ce que je veux grâce au tcp ?
    Par exemple,tout simplement,le serveur envoie un paquet sans donnée au client et le client le renvoie de suite. Le serveur calcul le temps entre l'émission et la reception. Serait-ce représentatif du temps de réponse ?

    [Autre question: est ce que le temps que prend l'information pour l'allée est toujours le même que pour le retour ?]

    Merci beaucoup à vous
    "L'imagination est plus importante que la connaissance." - Albert Einstein.

  2. #2
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Pour ton histoire de ping sur TCP, pourquoi pas ! tu n'as qu'à écrire un tout petit protocole, avec des sockets ou ce que tu utilises, et un timer... Rien de bien compliqué a priori. Et ça sera sans doute plus représentatif du temps de réponse "applicatif", si tu utilises les mêmes moyens de communication que pour le reste de ton programme.

    Pour ta question subsidiaire, la réponse est non dans le cas général, le routage n'est pas forcément symétrique, d'une part à cause des tables de routage qui ne le sont pas, d'autre part à cause de la charge du réseau qui n'est sans doute pas isotrope.

  3. #3
    Membre actif Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Points : 274
    Points
    274
    Par défaut
    okay ça fait plaisir pour la première réponse Eusebius.
    Pour la deuxième un peu moins : Est-ce que la différence est grande entre le temp d'allée et celui du retour (si on fait une moyenne sur une centaine de mesures par exemple)?
    Si jamais tu t'y connais en java, y a t-il moyen de récupérer le moment de l'émission d'un paquet depuis son header ?
    Merci
    "L'imagination est plus importante que la connaissance." - Albert Einstein.

  4. #4
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par orelero
    Est-ce que la différence est grande entre le temp d'allée et celui du retour (si on fait une moyenne sur une centaine de mesures par exemple)?
    Ca dépend de trop de paramètres ! Je pense pas qu'il y ait de règle.

    Pour la suite je suis pas compétent dsl

  5. #5
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 75
    Points : 73
    Points
    73
    Par défaut
    voila ce que j ai trouvé pour toi

    import java.io.*;
    import java.net.*;

    public class PseudoPing {
    public static void main(String args[]) {
    try {
    Socket t = new Socket(args[0], 7);
    DataInputStream dis = new DataInputStream(t.getInputStream());
    PrintStream ps = new PrintStream(t.getOutputStream());
    ps.println("Hello");
    String str = is.readLine();
    if (str.equals("Hello"))
    System.out.println("Alive!") ;
    else
    System.out.println("Dead or echo port not responding");
    t.close();
    }
    catch (IOException e) {
    e.printStackTrace();}
    }
    }

  6. #6
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 75
    Points : 73
    Points
    73
    Par défaut
    voila ce que j ai trouvé pour toi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    import java.io.*; 
    import java.net.*; 
     
    public class PseudoPing { 
    public static void main(String args[]) { 
      try { 
         Socket t = new Socket(args[0], 7); 
         DataInputStream dis = new DataInputStream(t.getInputStream()); 
         PrintStream ps = new PrintStream(t.getOutputStream()); 
         ps.println("Hello"); 
         String str = is.readLine(); 
         if (str.equals("Hello")) 
              System.out.println("Alive!") ; 
         else 
              System.out.println("Dead or echo port not responding"); 
         t.close(); 
      } 
      catch (IOException e) { 
         e.printStackTrace();} 
      } 
    }

  7. #7
    Membre actif Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Points : 274
    Points
    274
    Par défaut
    okay merci ced !
    C'est exactement ça, il ne reste plus que je rajoute le timer .
    "L'imagination est plus importante que la connaissance." - Albert Einstein.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. TCP : Utilisation paquet par paquet plutot que flux
    Par dockurt2k dans le forum Développement
    Réponses: 6
    Dernier message: 12/01/2007, 11h03
  2. [Conseils] WebServices plutôt que Client/Serveur classique ?
    Par gk14fire dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 28/08/2006, 09h07
  3. Resultat de requete =0 plutot que nul
    Par Satan dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/06/2006, 16h48
  4. Trier un std::map selon les valeurs plutot que les clés
    Par dj.motte dans le forum SL & STL
    Réponses: 2
    Dernier message: 13/11/2004, 21h54
  5. Avantages du 2.6 par rapport a 2.4, Apache 2 plutot que 1.3.
    Par Aeternus dans le forum Administration système
    Réponses: 9
    Dernier message: 08/04/2004, 10h49

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