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]Envoyer un Objet sur le réseau


Sujet :

Entrée/Sortie Java

  1. #1
    Battosaiii
    Invité(e)
    Par défaut [Réseau]Envoyer un Objet sur le réseau
    Salut,

    J 'essaye depuis tout a l'heure d'envoyer un message de type Message :

    voila sa classe :
    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
     
     
    import java.net.*;
    import java.io.*;
     
    class Message implements Serializable
    {
    private String TextMessage;
    private int[] pixels;
    public String Sender;
    private String Receiver;
     
    public Message(int[] pixels,String Sender,String Receiver)
    {
    this.Receiver=Receiver;
    this.Sender=Sender;
    this.pixels=pixels;
     
    }
     
    public Message(String TextMessage,String Sender,String Receiver)
    {
    this.Receiver=Receiver;
    this.Sender=Sender;
    this.TextMessage=TextMessage;
     
    }
    La ou ca bug c'est lorsque j'envoie le message a l'aide de :
    :j'ai initialiser le message correctement puis
    public void Message()
    {
    String check;
    Message mess= new Message("ca va","fred","jacques");
    this.send(mess);
    check =(String)receive();
    System.out.println("The messsage recu de la classe message est : " + check);
    }




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
      private void send(Object o) 
        {
    	try 
            {
    	   System.out.println("Sending " + o);
    	   os.writeObject(o);
    	   os.flush();
    	} 
            catch (Exception ex) 
            {
    	   System.out.println(ex.toString());
    	}
        }

    J'obtiens l'erreur :

    C:\Temp>appletviewer InterfaceClient.html
    Connected to Server
    Sending Message@16f8cd0
    java.io.EOFException
    The messsage envoiye de la classe message est : null
    Que faut il faire pour envoyer un message de ce type au serveur ?

  2. #2
    Battosaiii
    Invité(e)
    Par défaut
    Je vais essayer d'etre plus clair . Je tente d'envoyer sur le resaeu a l'aide de cette methode qui marche pour des STRING :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      private void send(Object o)
        {
       try
            {
          System.out.println("Sending " + o);
          os.writeObject(o);
          os.flush();
       }
            catch (Exception ex)
            {
          System.out.println(ex.toString());
       }
        }
    je l'ai teste et approuvee avec des STring.

    Par contre lorsque j'envoie un objet de type Message :

    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
    import java.net.*;
    import java.io.*;
     
    class Message implements Serializable
    {
    private String TextMessage;
    private int[] pixels;
    public String Sender;
    private String Receiver;
     
    public Message(int[] pixels,String Sender,String Receiver)
    {
    this.Receiver=Receiver;
    this.Sender=Sender;
    this.pixels=pixels;
     
    }
     
    public Message(String TextMessage,String Sender,String Receiver)
    {
    this.Receiver=Receiver;
    this.Sender=Sender;
    this.TextMessage=TextMessage;
     
    }
    J'obtiens une erreur de type :

    C:\Temp>appletviewer InterfaceClient.html
    Connected to Server
    Sending Message@16f8cd0
    java.io.EOFException
    The messsage envoiye de la classe message est : null
    Quelau'un pourrait il eclairer ma lanterne ?

  3. #3
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Pour avoir plus d'informations sur l'erreur, remplace dans ton bloc catch
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(ex.toString());
    parcela te donnera plus d'informations et permettra de mieux cibler l'erreur.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  4. #4
    Battosaiii
    Invité(e)
    Par défaut
    J'ai exactement la meme erreur avec ce catch ...
    Pourquoi ne veut il pas envoyer un objet de type message ? est ce interdit ?

  5. #5
    Battosaiii
    Invité(e)
    Par défaut
    Quelqu'un peut il m'aider ai je fait une erreur dans la classe Message ? Je peux envoyer des caracteres String avec la methode send mais pas des objet de type Message pourquoi ??
    Quelle est l'erreur provenant de ma classe Message ?

  6. #6
    Battosaiii
    Invité(e)
    Par défaut
    QUELLEs sont les types possibles a part STring que l'on peut envoyer sur le reseau ??? Car la classe ci dessus et la classe Vector ne marche pas !
    NEED HELP !!!

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 106
    Points : 130
    Points
    130
    Par défaut
    hello
    Essaye d'enlever le tableau de int de ta class message. Il a peut être du mal à le sérialiser. Vérifie si tu catch pas une erreur du type NotSerializableException.

    Si c'est ca, il faut reimplementer Serializable::WriteObject(OutputStream) et Serializable::ReadObject(InputStream).

    Tchou !
    PHP / J2EE

  8. #8
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bonjour,
    j'ai du mal à comprendre ton code :
    - La méthode Message() dans laquelle tu appelles send et receive est elle le constructeur de la classe Message ?
    Si oui, ca devrait meme pas tourner puisque tu contruis un deuxième objet Message dans le constructeur !
    - la méthode send appartient à quelle classe ? Une dérivée de Socket, je suppose ?
    - peux tu poster le contenu de ta méthode receive() ?
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  9. #9
    Battosaiii
    Invité(e)
    Par défaut
    La methode receive n'est pas importante car j'arrive meme pas
    a envoyer le message donc comment je pourrais la recevoir ?
    Toutes ces methodes marchaient pour des nessage de type String.
    Aucun autre type ne marche .J'obtiens des EOFexception a chaque fois
    Je ne sais vraiement pas comment faire J'ai pas de serializable
    exception. Comment feriez vous pour envoyer des messages
    des tableaux de int ou String ??

    Si c'est ca, il faut reimplementer Serializable::WriteObject
    (OutputStream) et Serializable::ReadObject(InputStream).

    Comment faire pour serialiser ces methodes ???

  10. #10
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Points : 6 301
    Points
    6 301
    Par défaut Re: Envoyer une objet de type message sur le reseau.
    Citation Envoyé par Battosaiii

    La ou ca bug c'est lorsque j'envoie le message a l'aide de :
    :j'ai initialiser le message correctement puis
    public void Message()
    {
    String check;
    Message mess= new Message("ca va","fred","jacques");
    this.send(mess);
    check =(String)receive();
    System.out.println("The messsage recu de la classe message est : " + check);
    }

    ?

    Deja il y a un petit probleme que je vois, mais je ne sais pas si c'est l'origine du probleme mais sait on jamais.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	Message mess= new Message("ca va","fred","jacques");
    	this.send(mess);
    Tu envoie un Message mais


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    check =(String)receive();
    Tu veux recuperer un String ...

    Essai ca plutot :

    check = ((Message)receive()).toString();

    Bon ca t'affichera pas un message bien sympathique si tu n'a pas redefini la methode toString() mais bon, ca devrait deja mieux fonctionner.
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  11. #11
    Battosaiii
    Invité(e)
    Par défaut
    J ai essaye ce aue tu viend de ecrire. j ai le meme probleme. Comment feriez vous pour envoyer des int [] sur le reseau ? avec la methode writeobject et socket ???

  12. #12
    Battosaiii
    Invité(e)
    Par défaut
    unreported java.io.EOFException,
    must be caught or declared to be thrown
    BufferWriter= new Bufferwriter(f);

    Je sais que cette fonction marche car je l ai essaye dans dautres
    classes.

    De quoi ca peut bien venir ?

  13. #13
    Battosaiii
    Invité(e)
    Par défaut
    Je me suis tromper de post avec le precedent message.
    Comment faire pour envoyer int[] avec la methode socket ? J'ai essaye beaucoup de possibilites sans succes ...

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 106
    Points : 130
    Points
    130
    Par défaut
    En fait dans la socket, tu ecrits dans un OutputStream et tu lis dans un InputStream.

    Tout ce que tu écriras dans le OutputStream renvoyé par Socket::GetOutputStream sera envoyé.

    Je te renvoie donc vers :

    1- La doc de socket : http://java.sun.com/j2se/1.5.0/docs/api/index.html?javax/swing/plaf/synth/package-summary.html
    2- La doc de OutputStream : http://java.sun.com/j2se/1.5.0/docs/api/index.html?javax/swing/plaf/synth/package-summary.html
    PHP / J2EE

  15. #15
    Battosaiii
    Invité(e)
    Par défaut
    Ce que je comprends pqs c'est que j arrive a envoyer des String mais pas d4autres objets . J ai une erreur EOfException a chaque fois !!! Pourquoi ? personne n a jamais eu ce genre de probleme avec les socket c est dingue .

Discussions similaires

  1. Envoyer des objets sur le réseau avec une midlet
    Par asnaeb dans le forum Développement Mobile en Java
    Réponses: 3
    Dernier message: 26/08/2011, 19h40
  2. Comment envoyer le nom de l'objet sur lequel on est à une fonction ?
    Par beegees dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/04/2009, 10h50
  3. [Servlet][Deb]envoyer image gif sur le flux http
    Par ptitBoutchou dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 09/04/2004, 10h12
  4. Quel langage pour envoyer un fichier sur une adresse
    Par dai.kaioh dans le forum Développement
    Réponses: 2
    Dernier message: 02/04/2004, 16h38
  5. Créer des objets sur la pile ?
    Par Cornell dans le forum Langage
    Réponses: 8
    Dernier message: 03/03/2003, 11h47

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