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 :

débutant : envoi d'un String par socket impossible


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 40
    Points : 25
    Points
    25
    Par défaut débutant : envoi d'un String par socket impossible
    Bonjour ,
    j'ai pour projet de réaliser un client/serveur par communication avec socket tout simple pour commencer.
    J'ai donc créer le serveur et le client.
    La connection se fait mais je recevais des caractères spéciaux (CE QUI EST NORMAL CAR J'ENVOYAIS UN INT ET JE LISAIS UN STRING).
    Depuis J'essayes d'envoyer un String à partir du serveur à la connection du client mais une erreur me stop:

    le pb c'est que mon prog retourne une erreur :
    méthode getOutputStream() introuvable dans la classe java.net.ServerSocket

    j'ai mis le flux de sortie dans un tant que infini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OutputStreamWriter sortie = new OutputStreamWriter(ecoute.getOutputStream());
    puis un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sortie.write("chaine");
    j'ai essayer avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OutputStream fluxSortie = service.getOutputStream();
    Mais avec cette allocation je n'arrive pas a envoyer une chaine (String) avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sortie.write("chaine");
    ce qui sur cette dernière me renvoi cette erreur :
    méthode write(java.lang.String) introuvable dans java.io.OutputStream

    et aussi :
    Serveur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Writer sortie = new BufferedWriter(new OutputStreamWriter(System.sortie));
    Client:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    BufferedReader in = new BufferedReader(new InputStreamReader(objet_socket.getInputStream()));
    System.out.println(in);
    il y a bien compilation mais je reçois ceci sur le client (le "in") :
    java.io.BufferedReader@7b7072


    Quelqu'un aurait-il une solution ?
    ps :je vais envoyer des chiffres et des lettres à travers le String du serveur.
    j'ai inclu dans les 2 prog :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import javax.swing.UIManager;
    import java.awt.*;
    import java.io.*;
    import java.net.*;
    import java.util.*;

  2. #2
    Membre actif Avatar de hydraland
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Points : 239
    Points
    239
    Par défaut
    Salut,

    Pour envoyer une chaine, un objet ou un type primitif je te conseil d'utiliser un java.io.ObjectOutputStream. Le pendant de cette classe pour la lecture c'est la classe java.io.ObjectInputStream.

    A+
    Hydraland

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 40
    Points : 25
    Points
    25
    Par défaut
    ok merci beaucoup Hydraland je vais essayer.Je te dit quoi dès que j'ai le net.
    Merci encore

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 40
    Points : 25
    Points
    25
    Par défaut
    j'ai essayer avec les objet et les int mais ca ne marche pas non plus .
    merci quand meme hydraland !
    j'obtiens en entrée du client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.io.BufferedReader@136228

  5. #5
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par 2tsiris
    j'ai essayer avec les objet et les int mais ca ne marche pas non plus .
    merci quand meme hydraland !
    j'obtiens en entrée du client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.io.BufferedReader@136228
    Heu c'est pas le BufferedReader qu'il faut afficher, celui-ci ne sert qu'à lire le flux, il ne constitue pas l'information elle-même.

    Pour récupérer l'info que tu as envoyé, il faut faire utiliser la méthode readline:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    BufferedReader in = new BufferedReader(new InputStreamReader(objet_socket.getInputStream()));
    System.out.println(in);
    String chaine = in.readLine();
    System.out.println(chaine);

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

Discussions similaires

  1. Envoi d'une valeur par socket
    Par bibom dans le forum C++Builder
    Réponses: 6
    Dernier message: 15/06/2007, 14h04
  2. Envoi d'un fichier par socket
    Par Aleksis dans le forum C++
    Réponses: 12
    Dernier message: 12/08/2006, 05h10
  3. récupérer string par socket TCP
    Par bogsy15 dans le forum C++
    Réponses: 14
    Dernier message: 11/06/2006, 16h05
  4. Réponses: 3
    Dernier message: 06/03/2006, 10h36
  5. Ouverture de connexion et envoi d'un message par socket
    Par loleske dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/02/2005, 12h52

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