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

Entrée/Sortie Java Discussion :

[Socket] lent... [FAQ]


Sujet :

Entrée/Sortie Java

  1. #21
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 230
    Points : 250
    Points
    250
    Par défaut
    comme j'avance enormement pour mon client ftp (g quasiment fini manque le telechargement de dossier et le chemin des fichier telecharger)
    et parfois la connection est instanner (login et tout)!!

  2. #22
    Nouveau membre du Club Avatar de legzo
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Bon j'up ce topic parce que je suis confronté au même problème:

    En résumé j'ai fait une appli client serveur. Mon server tourne sur une machine distante en LAN que je ping a 10ms. Mon client tourne sur mon pc.

    Le temps nécessaire à l'établissement d'une connection dans cette configuration est de l'ordre de 5 à 6 secondes (j'ai fait plusieurs tests avec affichage de date.getTime()).

    En local (server et client sur la même machine) le temps nécessaire à la connection est de l'ordre de 50ms, donc quasi instantané.

    Je comprends pas d'où ça peut venir, et surtout ça m'embête assez, c'est pas super viable surtout quand on sait que le logiciel est destiné à une entreprise. 10ms de ping et 6 secondes pour une connection...

    (ps: oui, mon code est bon a priori je l'ai montré à quelqu'un déjà et il m'a rassuré, je peux néanmoins le poster sans souci).

    Merci d'avance!

  3. #23
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Points : 71
    Points
    71
    Par défaut
    +1, je n'ai pas encore de solution a ce probleme systématique...

  4. #24
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 230
    Points : 250
    Points
    250
    Par défaut
    ouais bon c trop pour que se soit une coincidence ils y a plusieur possibiliter :
    - soit on code tous comme des cochon
    -soit on a des connection de merde
    -soit internet commence a sature
    -soit c java qui ne marche pas tres bien
    -ou alors tout simplement c normal

  5. #25
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Points : 71
    Points
    71
    Par défaut
    Je ne code pas comme un cochon ( enfin je pense, apres revue de mon propre code), ma connection LAN est impec, je ne passe pas par Internet.... je ne pense pas que Java soit en cause. Plutot une configuration, une politique de sécurité, etc... faut creuser !

  6. #26
    Nouveau membre du Club Avatar de legzo
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par xterminhate
    Je ne code pas comme un cochon ( enfin je pense, apres revue de mon propre code), ma connection LAN est impec, je ne passe pas par Internet.... je ne pense pas que Java soit en cause. Plutot une configuration, une politique de sécurité, etc... faut creuser !
    Oui je suis exactement dans ce cas là. Je me connecte en LAN sur un server qui est pas chargé du tout et que je ping très bien.. je sais pas ce qui est en cause je vais demander autour de moi si la machine a des problèmes mais bon...

    J'ai des échos d'autres personnes pour qui les connections socket en java passent nickel. Mais on est pas mal à avoir ce soucis, donc je sais pas trop quoi penser. En tout cas je me sens moi seul

  7. #27
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Sous quel environnement vos tests ont-il été effectués?
    Bien le bonjour chez vous
    Jowo

  8. #28
    Nouveau membre du Club Avatar de legzo
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Client: win NT
    Serveur: SunOS

    Je rajoute qu'entre deux pc sous win NT de mon bureau, la connexion se fait en 1s maximum.

    Comme je ne sais pas où est situé mon server distant (celui auquel je me connecte en 6s), il est possible qu'il soit derrière plusieurs routeurs et éloigné physiquement, mais je le ping a 10ms.. donc la liaison est bonne.


  9. #29
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Attention PING n'utilise pas le protocole TCP ou UDP. Il emploie le protocole ICMP (Internet Control Message Protocol).

    Pour ce genre de test (accés à un serveur), j'utilise telnet.

    Essaie de te connecter avec telnet pour déterminer le temps de connection.
    Bien le bonjour chez vous
    Jowo

  10. #30
    Nouveau membre du Club Avatar de legzo
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par jowo
    Attention PING n'utilise pas le protocole TCP ou UDP. Il emploie le protocole ICMP (Internet Control Message Protocol).

    Pour ce genre de test (accés à un serveur), j'utilise telnet.

    Essaie de te connecter avec telnet pour déterminer le temps de connection.
    Bien vu!

    J'ai constamment des sessions telnet ouvertes sur cette machine, et non seulement moi, mais aussi plusieurs collègues, jamais de souci de ce côté. C'est très réactif, connection instantanée.

    (je ne sais pas comment je pourrais estimer le temps nécessaire à l'élaboration d'une connection précisément)

  11. #31
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    as-tu utilisé la commande "telnet hostname 21" pour accéder à ton serveur sur le port par défaut du FTP?

    Pour déterminer le temps de connection, je vais à l'estimation. Tu remarques si le serveur te réponds immédiatement ou pas.
    Bien le bonjour chez vous
    Jowo

  12. #32
    Nouveau membre du Club Avatar de legzo
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par jowo
    as-tu utilisé la commande "telnet hostname 21" pour accéder à ton serveur sur le port par défaut du FTP?

    Pour déterminer le temps de connection, je vais à l'estimation. Tu remarques si le serveur te réponds immédiatement ou pas.
    Euh je pige pas bien pourquoi tu veux que je test ça, mais oui je l'ai fait. Connection immédiate là encore.

    Telnet connection immédiate
    FTP connection immédiate

    Java socket connection 6s...

  13. #33
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Ok

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    public static void main(String[] args) {
            String host = "ftp.FreeBSD.org";
            int port = 21;
     
            if (args.length >= 1) {
            	host = args[0];
                if (args.length >=2) {
                    try {
                     port = Integer.parseInt(args[1]);
                    }
                    catch (NumberFormatException nfe) {
     
                    }
                }
            }
            try {
                long start = System.currentTimeMillis();
    			Socket socket = new Socket(host, port);
                long duration = System.currentTimeMillis() - start;
                socket.close();
                System.out.println("Connexion à " + host + ":" +  port + " en "+ duration + "ms");
    		} catch (UnknownHostException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    }
    Pour ce bout de code j'obtiens des temps de connexion de l'ordre de 300ms pour le serveur 'ftp.FreeBSD.org'.

    Quels sont les vôtres?
    Bien le bonjour chez vous
    Jowo

  14. #34
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Points : 71
    Points
    71
    Par défaut
    client sous winXP, serveur sous Linux (mandriva).

    Le client prend 5 à 6 seconde à chaque connexion. Il me semble que le serveur accepte les connexion de manière instantanée si le client le permet (c/c++).

  15. #35
    Nouveau membre du Club Avatar de legzo
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par jowo
    Ok

    Pour ce bout de code j'obtiens des temps de connexion de l'ordre de 300ms pour le serveur 'ftp.FreeBSD.org'.

    Quels sont les vôtres?
    Malheureusement les ftp extérieurs sont bloqués au boulot. Je ne peux donc pas tester.

  16. #36
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Mais avec ton serveur FTP et avec mon bout de code, tu as toujours six secondes comme temps de connexion?
    Bien le bonjour chez vous
    Jowo

  17. #37
    Nouveau membre du Club Avatar de legzo
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par jowo
    Mais avec ton serveur FTP et avec mon bout de code, tu as toujours six secondes comme temps de connexion?
    Mon bout de code est très sensiblement le même donc je vais te dire oui, a priori, je mets mon bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void connexion() {		
    		try {
    			logger.info("trying connexion on " + host + ", on port " + port);
    			Date date1 = new Date();
    			connexion = new Socket(InetAddress.getByName(host), Integer.parseInt(port));
    			Date date2 = new Date();
     
    			System.out.println(date2.getTime()-date1.getTime()+"ms to connect");
    Y'a pas trop de souci de ce côté là je pense. host et port sont déclarés et initialisés plus haut.

  18. #38
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    As-tu testé avec directement avec l'adresse IP de ton serveur FTP?
    Bien le bonjour chez vous
    Jowo

  19. #39
    Nouveau membre du Club Avatar de legzo
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par jowo
    As-tu testé avec directement avec l'adresse IP de ton serveur FTP?
    En fait je ne fais pas de FTP hein, juste je connecte client et server via sockets. (mon server aussi est en java)

    Mais oui, dans ma variable host, il y a une ip et pas un alias. C'est vrai qu'on aurait pu penser qu'il mettait du temps pour résoudre le nom, bien vu encore!

  20. #40
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Encore un autre test (le dernier aujourd'hui), nous allons construire la connexion étape par étape

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
        public static void main(String[] args) {
                Socket socket = new Socket();
     
                // l'adresse IP de la cible
                start = System.currentTimeMillis();
                InetAddress ipAddr = InetAddress.getByName(host);
                duration = System.currentTimeMillis();
    			// Socket de la cible
                start = System.currentTimeMillis();
                InetSocketAddress endPoint = new InetSocketAddress(ipAddr, port);
                duration = System.currentTimeMillis() - start;
                System.out.println("endPoint en " + duration+ "ms");
                // Socket locale
                if (!socket.isBound()) {
                    start = System.currentTimeMillis();
                    socket.bind(null);
                    duration = System.currentTimeMillis() - start;
                    System.out.println("Bind en "+ duration + "ms");
                }
                System.out.println("Est-on connecté? " + socket.isConnected());
                // Création de la connexion
                start = System.currentTimeMillis();
                socket.connect(endPoint);
                duration = System.currentTimeMillis() - start;
                System.out.println("Connexion à " + host + ":" +  port + " en "+ duration + "ms");
                // Properties of the current socket
                System.out.println("Socket: " + socket);
                socket.close();
    }
    Voici ma sortie:
    endPoint en 0ms
    Bind en 0ms
    Est-on connecté? false
    Connexion à ftp.FreeBSD.org:21 en 172ms
    Socket: Socket[addr=ftp.FreeBSD.org/204.152.184.73,port=21,localport=2727]
    Bien le bonjour chez vous
    Jowo

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. [Débuter] Socket très lent
    Par uriotcea dans le forum Réseau
    Réponses: 6
    Dernier message: 16/03/2013, 18h38
  2. Réponses: 1
    Dernier message: 04/12/2008, 23h42
  3. [Réseau] socket trop lent
    Par cid7777 dans le forum C++
    Réponses: 5
    Dernier message: 12/07/2007, 00h30
  4. socket : UDP a partir d'un autre ordi super lent
    Par RaphAstronome dans le forum Ruby
    Réponses: 3
    Dernier message: 21/05/2007, 22h15
  5. [Socket] Rafraichissement lent de l'image
    Par keil dans le forum Multimédia
    Réponses: 9
    Dernier message: 26/10/2005, 15h01

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