Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1356 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Exception sur socket

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Exception sur socket

n°1645489
infoman64
JE SUIS LA POUR TOI MON AMI
Posté le 19-11-2007 à 20:52:05  profilanswer
 

Bonjour voila je suis en train de faire pour un projet, un serveur mail,
voila l'exception

Citation :


java.net.SocketException: socket closed
 at java.net.SocketInputStream.socketRead0(Native Method)
 at java.net.SocketInputStream.read(Unknown Source)
 at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
 at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
 at sun.nio.cs.StreamDecoder.read(Unknown Source)
 at java.io.InputStreamReader.read(Unknown Source)
 at java.io.BufferedReader.fill(Unknown Source)
 at java.io.BufferedReader.readLine(Unknown Source)
 at java.io.BufferedReader.readLine(Unknown Source)
 at MonPackage.ThreadRelay.run(ThreadRelay.java:45)
 at java.lang.Thread.run(Unknown Source)


 
voici le code important

Citation :

public void run(){
  try{
  System.out.println("Lancement du relai" );
   
  System.out.println("nb "+reexpeditionUser.size());
  userRe="toto@192.168.1.2";
  String nomdomaine=recupDomaine(userRe);
  String ligne;
  int i=0;
  System.out.println("Reexpedition de message :"+nomdomaine);
   
   
  _s = new Socket(nomdomaine,26);
  //Création des flux de transport
  _in = new BufferedReader(new InputStreamReader(_s.getInputStream()));
  _out = new PrintStream(_s.getOutputStream());
   
  //On récupere les message recus
  while((ligne = _in.readLine())!= null && verif)  //ligne 45
  {
   System.out.println("message recu: "+ligne);
   traitementmess(ligne,i);
   i++;  
  }
 
  System.out.println("L'email a été retransmis" );
 
  System.out.println("Fin du relai" );
  } catch (Exception e) {
   System.out.println("Erreur " );e.printStackTrace();
  }finally {
 
    try {
     // fermeture du socket
     //System.out.println("Fermeture du Socket" );
     _s.close();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
  }
 }


 
bon voila je me connecte, sur un autre serveur, puis je lit sur le socket, tant que la variable verif est a "true" (elle est initialisé par defaut a true)
je traite les informations en fonction de ce que je recois sur le socket
jusqu'a la tout va bien,
ensuite je recois un certain message et voici son traitement, donc j'envoie à l'autre serveur un "quit", puis je ferme le socket,et je passe la variable "verif" à false, ce qui va normalement faire arreter la lecture sur le socket, mais la il me generer une exception, que je n'arrive pas a resoudre

Citation :

if(temp==5&&(code.compareTo("250" )==0)){
   _out.println("QUIT" );
   verif = false;
   // on ferme le socket
   try {
    System.out.println("Fermeture du socket" );
    _s.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
  }


 
Merci, d'avoir preter attention a mon probleme

mood
Publicité
Posté le 19-11-2007 à 20:52:05  profilanswer
 

n°1647898
Bidem
Posté le 23-11-2007 à 14:01:19  profilanswer
 

Code :
  1. while((ligne = _in.readLine())!= null && verif) {///


 
Vu comment c'est écrit, quelle que soit la valeur de verif, on va faire le readLine parce que l'expression est évaluée de gauche à droite.
 
ecrit plutot (verif && ligne = _in.readLine())!= null)

n°1648056
lapin21
Posté le 23-11-2007 à 16:38:39  profilanswer
 

L'erreur de socket fermée est peut-être juste due à un problème réseau...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Exception sur socket

 

Sujets relatifs
C# > Thread + Socket : Passage par parametre, je galere ![Perl] lecture/écriture simultanées sur une socket
Serveur avec socket Unix + Pointeur de fonctions (contexte memoire ?)[ Quasi-Résolu ] [socket] Effectuer deux echanges sans deconnexion
JAVA - Client/Serveur sous Eclipse (RMI ou Socket ?)[C] [WINSOCK] Socket connectée ?
[ JAVA ] [ JBuilder ] Socket Exception ?[JAVA][Servlet] Socket Exception ???
[C++ Builder / Delphi] Gérer l'exception d'un socket 
Plus de sujets relatifs à : Exception sur socket


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR