Bon j´expose quand même mon problème.
J´ai un système client-serveur qui doit communiquer entre eux.
Je déclare donc le serveur:
ServerSocket serv = new ServerSocket(NumeroPort);
Chaque client qui veut se connecter ouvre une socket sur ce serveur:
Socket sock = serv.accept();
Pour communiquer, pour que le serveur envoie des données, on utilise un flux de communication qu´on récupère de cette socket, déclaré comme suit:
PrintWriter out = new PrintWriter(sock.getOutputStream(), true);
Jusqu´ici tout va bien.
Seulement à un moment j´ai besoin de fermer ce flux de sortie puis de le rouvrir plus tard.
Je le ferme avec:
out.close();
Puis pour le rouvrir j´en déclare un autre:
out = new PrintWriter(sock.getOutputStream(), true);
Et c´est là que le problème intervient. Sur cette dernière ligne j´ai l´erreur suivante:
java.net.SocketException: Socket is closed
at java.net.Socket.getOutputStream(Socket.java:735)
On me dit que la socket est fermée, alors que c´est le PrintWriter qui je viens de fermer, pas la socket.
Alors est-ce que le fait de faire out.close() ferme aussi la socket en même temps ? Ca m´étonnerait, et je trouve pas ça logique.
Voilà, si qqun sait d´où ça peut venir...