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 :

[Réseau] Problème socket


Sujet :

Entrée/Sortie Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [Réseau] Problème socket
    Salut à tous!

    Voila je me trouve face a un problème qui m'échape quelque peu, je veux créer une interface client avec la class Socket, j'ai fais mon Thread pour l'arrivée des messages jusqu'a la tout fonctionne mais quand je veux envoyer un message à partir d'une autre méthode tjrs dans la même class et dans la même connexion qui est en écoute, ça marche pas, ce qui est évident vu que mon constructeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Socket client = new Socket("127.0.0.1",4040)
    est déclarer dans le thread. Comment puis-je reprendre cette connexion déjà ouverte, sans avoir à ouvrir un deuxième socket ?

    Ya t'il une méthode d'indexation comme en delphi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ServerSocket1.Socket.Connections[0].SendText(...);
    Merci !!





    [Modéré par Didier]
    Ajout de tag dans le titre
    Lire les règles du forum : Règles du forum Java

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    j'ai pas tt a fait compris ton problème. Mais en gros tu sais pas envoyer un message.

    une fois ta connexion creer, il faut que tu cree des flux pour pouvoir ecrire ou lire.

    Voici, un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Socket client = new Socket( "127.0.0.1", 4040 );
    DataOutputStream dos = new DataOutputStream( client.getOutputStream ); // flux pour envoyer des messages
    DataInputStream dis = new DataInputStream( client.getInputSream() ); // flux pour lire des message
     
    // Envoie "Bonjour"
    dos.writeUTF( "Bonjour" );
    Et voila le tour, est joué !!!!!!!
    -- Java Power :::--> Suck .Net <--

  3. #3
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    Quand tu appeles la méthode qui ecrit vers le flux, il faut lui passer en parametre soit la socket soit le flux construit depuis la socket.

  4. #4
    Futur Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 5
    Points : 5
    Points
    5
    Par défaut MERCI ca marche!
    MERCI ca marche!

  5. #5
    Membre régulier

    Inscrit en
    Juin 2003
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 158
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par christopheJ
    Quand tu appeles la méthode qui ecrit vers le flux, il faut lui passer en parametre soit la socket soit le flux construit depuis la socket.
    J'ai le même problème mais moi, je n'arrive pas à le résoudre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            OutputStream out = socket.getOutputStream();
            out.write(buffer);
    Le souci, c'est que je n'ai pas trouvé sur quel objet je devais passer le socket créé

  6. #6
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Comment ça sur quel objet? Je ne comprend pas ce que tu veux dire...
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  7. #7
    Membre régulier

    Inscrit en
    Juin 2003
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 158
    Points : 96
    Points
    96
    Par défaut
    En ce qui concerne l'objet, je faisais reference a la remarque de christopheJ : "il faut lui passer"
    Je me suis dit qu'il fallait avoir un objet, on va dire toto, sur lequel j'appelle une methode du genre toto.write(socket, message) mais ce je ne trouve pas le toto et la methode en question

    En fait le symptome est le suivant :
    1 - Je cree ma socket
    2 - J'envoie le premier message. le serveur le receptionne bien et renvoie la reponse.
    3 - J'envoie un deuxieme message que le serveur ne receptionne pas.

    Par contre, si je cree une deuxieme socket pour envoyer le deuxieme message, alors tout va bien

  8. #8
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Il voulait surement dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    si tu as une méthode/classe qui s'occupe d'écrire, [b]il faut lui passer [/b](à la méthode ou à la classe) le socket ou le flux.
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  9. #9
    Membre régulier

    Inscrit en
    Juin 2003
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 158
    Points : 96
    Points
    96
    Par défaut
    Dans ce cas,
    du cote client, j'ai juste a faire cela ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Socket client = new Socket( "127.0.0.1", 4040 ); 
    DataOutputStream dos = new DataOutputStream( client.getOutputStream ); // flux pour envoyer des messages 
    DataInputStream dis = new DataInputStream( client.getInputSream() ); // flux pour lire des message 
     
    // Envoie "Bonjour" 
    dos.writeUTF( "Bonjour" ); // Envoi du 1er message
    dos.writeUTF( "Les amis" ); // Envoi du 2eme message

  10. #10
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Ouaip, pour moi ça marche dans l'idée. Par contre entre les 2 messages il faut s'assurer qu'il n'y a pas un flush ou un truc du genre à faire.
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  11. #11
    Membre régulier

    Inscrit en
    Juin 2003
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 158
    Points : 96
    Points
    96
    Par défaut
    J'ai fait le flush mais cela ne marche pas. Il doit donc y avoir un truc cote serveur qui fait que le deuxieme message n'est pas vu

  12. #12
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Mais euh ... y a rien sur google ???

    http://www.javaworld.com/javaworld/j...2-sockets.html

    Et euh tu ne maîtrises pas le serveur ?? Tu es sûr qu'il est correctement implémenté, que tu suis le bon protocole ?
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  13. #13
    Membre régulier

    Inscrit en
    Juin 2003
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 158
    Points : 96
    Points
    96
    Par défaut
    En ce qui concerne le serveur, le mot maitriser n'est pas adpate. Disons que j'ai trouve un serveur multi-thread et que je l'utilise tel quel . Il va falloir que je mette les mains dedans pour savoir pourquoi il ne decode pas mon deuxieme message.
    En tout cas merci pour ton lien. J'en ai fait beaucoup mais je n'etais pas encore tombe dessus.

  14. #14
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Euh dans ce cas alors mets juste quelques System.out.println dans le serveur. Va pas toucher à un truc qui est marche (enfin normalement). Il y avait pas un exemple de client avec ce serveur ? De la doc ?
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  15. #15
    Membre régulier

    Inscrit en
    Juin 2003
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 158
    Points : 96
    Points
    96
    Par défaut
    Il n'y avait pas de doc et en ce qui concerne le client, il envoyait un seul message donc je ne sais pas comment ils avaient prevu d'en envoyer d'autres.

    Je vais y aller pour les traces a la bonne franquette

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

Discussions similaires

  1. [C#] Prog. Réseau: Problème de socket client
    Par keyser-soze dans le forum C#
    Réponses: 4
    Dernier message: 26/09/2007, 18h12
  2. Problème socket, localhost et réseau
    Par dje41 dans le forum Développement
    Réponses: 1
    Dernier message: 22/06/2007, 17h57
  3. [Réseau] Problème entre X-DOS et Windows 98
    Par FLCEOAP dans le forum Développement
    Réponses: 1
    Dernier message: 15/05/2005, 23h41
  4. [résolution de noms] [réseau] problème fichier hosts
    Par Aldo dans le forum Administration
    Réponses: 2
    Dernier message: 11/04/2005, 21h38
  5. [Réseau] Programmation socket
    Par raj dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 03/12/2004, 12h58

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