Bonjour,
Presque tout est dans le titre.
On m'a demandé, dans le cadre d'un projet scolaire, de réaliser une application, capable dans un premier temps d'identifier un utilisateur qui entre login et mot de passe sur le client, et, le serveur, qui lui, identifie ou non selon la liste d'utilisateur qu'il contient ( dans un fichier ).
Ces utilisateurs sont en faite des objets utilisateurs, contenu dans un objet liste utilisateur grâce a la sérialisation. Jusque la tout va bien.
La première étape est donc d'envoyer les logins et mot de passe par un socket au serveur, et cela fonctionne.
Ensuite, je renvoie 1 booléen au client pour lui confirmer son authentification ou non.
Le problème se fait à la reception par le client, la console Java me lance une érreur à la figure, et, en dépit d'une volonté en béton armé ( peut être pas si armé du coup), je n'ai pas réussis à trouver la cause.
L'erreur est la suivante : java.net.SocketException: Connection reset
Et elle se produit sur l'appel de la/les méthode(s) de mon objet "inObj".
( Les méthodes puisque j'en ai essayer une paire, regardez le code vous comprendrez merci ).
Voici le code source, merci d'avance !
Main du client :
Code source du serveur :
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 boolean identifier; try { s = new Socket ( "localhost" , 6669 ); outObj = new ObjectOutputStream ( s.getOutputStream () ); inObj = new ObjectInputStream ( s.getInputStream () ); } catch ( Exception e ) { System.out.println(e); } // Reception du booléen d'authentification ... try { // ICI SE SITUE L'ERREUR !!! // Alors attention, ici j'ai du TOUT essayer ! // c'est a dire, identifier = (boolean) inObj.readBoolean(); // c'est a dire, identifier = inObj.readBoolean(); // c'est a dire, identifier = inObj.readObject(); // et enfin ... identifier = (boolean) inObj.readObject(); } catch ( Exception e ) { System.out.println ( e ); }
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 ServerSocket ecoute = null ; Socket s = null ; ObjectOutputStream outer = null ; ObjectInputStream in = null ; try { ecoute = new ServerSocket (6669) ; s = ecoute.accept () ; outer = new ObjectOutputStream ( s.getOutputStream () ) ; in = new ObjectInputStream ( s.getInputStream () ) ; texteIn = ( String ) in.readObject () ; lg = texteIn; System.out.println ( lg ) ; texteIn = ( String ) in.readObject () ; mdp = texteIn; System.out.println ( mdp ) ; } catch ( Exception e ) { System.out.println ( " Erreur ! ! ! " ); } try { // La je vérifiais que j'envoyais bien un booléen :? et c'est le cas if ( identifier ) System.out.println("c un boolz"); outer.writeBoolean ( identifier ) ; /*out.writeObject ( session ) ; out.writeObject ( utilisateur_identifié ) ;*/ } catch ( Exception e ) { System.out.println ( " Erreur !!! " ); }
Partager