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 :

java embarqué et socket client [Débutant(e)]


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 57
    Points : 49
    Points
    49
    Par défaut java embarqué et socket client
    bonjour a tous,
    Je developpe une application client serveur.
    Cette appli fonctionne correctement de PC à PC, mais quand je test le client à partir de ma carte (c'est une SNAP), une erreur est généré
    Exception in thread "Client" java.lang.Error
    D'ou peut provenir cette erreur? Comment la corrigé?
    quelqu'un a-t-il déjà utilisé ce type de carte...?

  2. #2
    Membre actif Avatar de Betatesteur
    Inscrit en
    Juillet 2003
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 210
    Points : 248
    Points
    248
    Par défaut
    bonjour,

    commence d'abord par montrer ton code + l'erreur que le compilo t'as généré...
    de 2, as tu cherché sur le forum pour voir si t'as question as été déjà rencontré par d'autres?

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 57
    Points : 49
    Points
    49
    Par défaut
    Voila mon code:
    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
    31
    32
    33
     
    import java.io.*;
    import java.net.*;
     
    /** Le processus client se connecte au site fourni dans la commande
    * d'appel en premier argument et utilise le port distant 8080.
    */
    public class Client {
    static final int port = 3000;
     
    public static void main(String[] args) throws Exception
        {
            Socket socket = new Socket("150.200.51.155", port);
            System.out.println("SOCKET = " + socket);
     
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
     
            PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
     
            String str = "bonjour";
            //for (int i = 0; i < 10; i++) {
            out.println(str); // envoi d'un message
            // for(String input = in.readLine(); input != null; input = in.readLine()) {
            String input = in.readLine();
            System.out.print(input);
            //  }
            System.out.println("END"); // message de terminaison
            out.println("END") ;
            in.close();
            out.close();
            socket.close();
        }
    }
    et l'erreur est
    Exception in thread "Client" java.lang.Error
    j'ai deja cherché sur le forum, et je n'ai rien vu concerant le type de carte que j'utilise. Au niveau des erreurs, elle est assez spéciale puisqu'elle ne décrit pas vraiment l'erreur comme le fai JBuilder par exemple.

  4. #4
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    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 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Bonjour,

    Pour trouver plus facilement les erreurs, prend l'habitude de traiter correctement les exceptions.


    Je ne sais d'où provient ton problème mais cette façon de traiter les exception ne va pas te faciliter la tâche: ;-)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static void main(String[] args) throws Exception
    Je te conseille de traiter toutes les exceptions (surtoute les I/O) que ton programme génère et par bloc.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 57
    Points : 49
    Points
    49
    Par défaut
    j'ai du nouveau, l'erreur que j'obtient provient de la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
    mais je comprend pas pourquoi sur un pc ce code fonctionne et pas sur ma carte...

  6. #6
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    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 414
    Points : 1 996
    Points
    1 996
    Par défaut


    Peut-on connaître l'erreur et son origine précise?

    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
     // Non compilé et donc pas testé ;-)
    InputStreamReader inpStream = null;
    BufferedReader in = null;
     
    try {
     inpStream = new InputStreamReader(socket.getInputStream());
    }
    catch(IOException ioe) {
      ioe.printStackTrace();
    }
    try {
      in = new BufferedReader(); 
    }
    catch(IOException ioe) {
      ioe.printStackTrace();
    }
    N'oublie de fermer tous les flux à la fin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (in != null) {
       in.close();
    }
    if (inpStream != null) {
       inpStream.close();
    }
    if (socket != null) {
      socket.close();
    }
    Ce bout de code serait mieux dans une clause finally.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 57
    Points : 49
    Points
    49
    Par défaut
    j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
    cette déclaration est pour moi correct, pourtant quant j'écrit dans ma socket
    le serveur ne récupere pas la chaine...

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 57
    Points : 49
    Points
    49
    Par défaut
    Bon, après quelques heure passé à cherché j'ai découvert qu'avec la méthode write() on a pas le caractère de fin de ligne.
    J'ai donc essayé d'utilisé la méthode newLine(), flush() mais le serveur ne recoit toujours rien!!

    voici mon code:
    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
    public static void main(String[] args)
        {
          try{
            Socket socket = new Socket("150.200.51.155", port);
            System.out.println("SOCKET = " + socket);
     
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
     
            String str = "bonjour";
            out.write(str);
            out.newLine();
            String input = in.readLine();
            System.out.print(input);
     
            System.out.println("END"); // message de terminaison
     
            //out.newLine();
            //out.flush();
            out.write("END");
            out.close();
            in.close();
            socket.close();
        }
        catch(Exception e) {System.out.println(e);}
    }
    Svp

  9. #9
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    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 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Peux-tu essayer ce code

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.Socket;
    import java.net.UnknownHostException;
     
    /*
     * Created on 30.03.2006
     *
     * To change the template for this generated file go to
     * Window>Preferences>Java>Code Generation>Code and Comments
     */
     
    public class SPANTest {
     
    	static final int PORT = 3000;
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
     
    		Socket socket = null;
    		InputStreamReader reader = null;
    		BufferedReader in = null;
    		OutputStreamWriter writer = null;
    		BufferedWriter out = null;
     
    		try {
    			socket = new Socket("150.200.51.155", PORT);
    			System.out.println("SOCKET = " + socket);
     
    			reader = new InputStreamReader(socket.getInputStream());
    			in = new BufferedReader(reader);
    			writer = new OutputStreamWriter(socket.getOutputStream());
    			out = new BufferedWriter(writer);
     
    			String str = "bonjour";
    			out.write(str);
    			out.newLine();
    			out.flush();
    			String input = in.readLine();
    			System.out.print(input);
     
    			System.out.println("END"); // message de terminaison
     
    			out.write("END");
    			out.newLine();
    			out.flush();
    		}
    		catch (UnknownHostException uhe) {
    			uhe.printStackTrace(System.out);
    		}
    		catch (IOException ioe) {
    			ioe.printStackTrace(System.out);
    		}
    		catch (SecurityException se) {
    			se.printStackTrace(System.out);
    		}
    		finally {
    			if (out != null) {
    				try {
    					out.close();
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace(System.out);
    				}
    			}
    			if (reader != null) {
    				try {
    					reader.close();
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace(System.out);
    				}
    			}
    			if (in != null) {
    				try {
    					in.close();
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace(System.out);
    				}
    			}
    			if (writer != null) {
    				try {
    					writer.close();
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace(System.out);
    				}
    			}
    			if (socket != null) {
    				try {
    					socket.close();
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace(System.out);
    				}
    			}
    		}
    	}
    }
    Le problème ne peut pas venir du serveur?

    As-tu bien lu la documentation concernant le réseau de ta carte SNAP?

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 57
    Points : 49
    Points
    49
    Par défaut
    alors la, je tire mon chapeau.. merci beaucoup!!
    sa faisait au moins 5 heures que je cherche..

    comment te remercier?!!

  11. #11
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    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 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Ta ola me suffit et pense au bouton

    Mais fait attention, Java ne réagit pas forcément de la même manière sur un PC et sur une carte comme SNAP.

    Apporte une attention particulière sur tout ce qui touche le réseau et les fichiers car Java est obligé d'utiliser du code natif.

  12. #12
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 57
    Points : 49
    Points
    49
    Par défaut
    j'avais remarqué aussi que java ne réagissé pas de la même façon..
    encore merci. bonne journée.

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

Discussions similaires

  1. Architecture Client/Serveur en java avec les sockets
    Par ram-0000 dans le forum Réseaux
    Réponses: 0
    Dernier message: 03/04/2013, 10h44
  2. Client SFTP en Java avec les Sockets
    Par TheLion dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 17/10/2011, 12h14
  3. Plusieurs socket cliente sur une socket serveur en Java?
    Par loic911 dans le forum Développement
    Réponses: 3
    Dernier message: 11/06/2010, 07h47
  4. socket client .NET avec socketlistener serveur en Java
    Par chano dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 23/09/2009, 01h43
  5. [SOCKET] Client C connecté à un serveur Java
    Par missllyss dans le forum Développement
    Réponses: 2
    Dernier message: 07/06/2004, 13h14

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