Socket exception
helloworld
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai l'exception suivante : java.net.SocketException: Socket closed
Je ne comprend pas pourquoi.. dans mon code je n'ai même pas fermer le socket.
Le server s'execute correcetement et au moment ou je connecte le client l'execption est levé.
Serveur
Client
J'ai l'exception suivante : java.net.SocketException: Socket closed
Je ne comprend pas pourquoi.. dans mon code je n'ai même pas fermer le socket.
Le server s'execute correcetement et au moment ou je connecte le client l'execption est levé.
Serveur
try (ServerSocket serverSocket = new ServerSocket(12341)) { while (true) { Socket clientSocket = serverSocket.accept(); System.out.println("New client connected"); ServerThread thread = new ServerThread(clientSocket); // extends thread thread.start(); } } catch (IOException e) { e.printStackTrace(); } }
Client
try (Socket socket = new Socket("localhost", 12341)) { ClientThread thread = new ClientThread(socket); //extends thread thread.start(); thread.send("Bonjour"); } catch (IOException e) { e.printStackTrace(); } }
Configuration: Windows / Chrome 71.0.3578.98
A voir également:
- Socket closed
- Err-connection-closed ✓ - Forum Microsoft Edge / Internet Explorer
- Error 2002 (hy000): can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) - Forum Linux / Unix
- ERROR 2002 (HY000): Can't connect to local .. - Forum Bases de données
- Remote side unexpectedly closed network connection ✓ - Forum Réseau
- Socket 1366 ✓ - Forum Matériel & Système
1 réponse
Petite précision l'exception est toujours levé dans mon thread gérant le coté client
public void run() { try { String message = null; if (in.readObject() != null) { //exception ici message = (String) in.readObject(); System.out.println(message); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
Le close est automatique à la fin d'un try-with-resources (c'est d'ailleurs le seul intérêt de cette écriture).
Dans quel ordre tu démarres tes programmes ?
Il faut que le serveur fonctionne avant que les clients se connectent sinon le programme client va planter.
C'est comme si la ressource ce fermait avant l'envoye du message dans la méthode run? C'est possible ?
Voici tout mon code :
Client
Server
thread coté client qui envoye et recoit les messages
thread coté serveur qui envoye et recoit les messages
Il faudrait déjà expliquer ce que tu cherches à faire avec ton client et ton serveur, mais pour moi le client envoie un message et le serveur le reçoit (ok), le serveur n'envoie pas de message donc le client ne reçoit rien (ok ?)