Bonjours, j'ai un tout petit serveur (environ 200lignes) qui tourne et qui écoute le réseau sur un port déterminé.
je m'y connecte via un client, et tout a l'air de fonctionner sauf que...
une fois connecté au serveur j'ai une fenêtre pour login/pass:
-si je rempli les champs et valide tout se passe bien (jButtonOkActionPerformed)
-si j'annule pour fermer le programme il y a une erreur (jButtonCancelActionPerformed) lors de l'envoie de la valeur de déconnexion au serveur
Code :
- private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) {
- try
- {
- ostream.writeInt(6);
- System.exit(0);
- }
- catch(Exception ex)
- {
- System.out.println("Un probleme est survenu:" );
- System.out.println(ex);
- System.exit(-1);
- }
- }
- private void jButtonOkActionPerformed(java.awt.event.ActionEvent evt) {
- try
- {
-
- ostream.writeInt(1);
- ostream.writeObject(jTextFieldLogin.getText());
- ostream.writeObject(jTextFieldPass.getText());
- Boolean connected = istream.readBoolean();
- if(connected)
- {
- System.out.println("Connection ok" );
- this.setVisible(false);
-
- }
- else
- jTextFieldPass.setText("" );
- }
- catch(Exception ex)
- {
- System.out.println("Un probleme est survenu:" );
- System.out.println(ex);
- System.exit(-1);
- }
- }
|
j'ai donc, dans un cas un flux qui roule, et dans l'autre un flux qui ne me retourne pas d'erreur mais qui, cotés serveur n'est pas détecté...
déclaration:
Code :
- server = new Socket(monIP,monPort);
- ostream = new ObjectOutputStream(server.getOutputStream());
- istream = new ObjectInputStream(server.getInputStream());
|
serveur:
Code :
- public void run()
- {
-
- try
- {
- ObjectOutputStream ostream = new ObjectOutputStream(client.getOutputStream());
- ObjectInputStream istream = new ObjectInputStream(client.getInputStream());
-
- //ostream.writeObject(obj);
- connected = true;
- while(connected)
- {
- //reception d'une requete
- System.out.print("Reception d'une requete: " );
- int request = istream.readInt();
- System.out.println(request);
- switch(request)
|
j'obtiens donc soit:
Code :
- Reception d'une requete: 1
- -->kranagard->Ok
|
soit
Code :
- Reception d'une requete:
- Deconnection (erreur: java.io.EOFException)
|
selon si je fais l'une ou l'autre fonction sur le client...
et pour la suite j'ai le même problème qui se pose, quelque soit la write utilisé cotés client, le serveur ne réagit pas. lorsque je ferme le client le serveur le détecte bien pourtant et sans le relancer je peux m'y reconnecter et faire le même teste.
donc si quelqu'un a une idée... moi je vois vraiment pas