Bonjour à tous,
Je réalise une petite application qui est censé transféré un fichier d'un poste à un autre. La partie serveur doit pouvoir accépter plusieurs connexions, mais lors de la connexion j'ai cette erreur qui apparait :
Je vous fournit ci-dessous les codes de ma classe MultiThread, le code du serveur et celui des clients :Exception in thread "main" java.net.SocketException: Socket is closed
at java.net.ServerSocket.accept(ServerSocket.java:417)
at MultiServer.main(MultiServer.java:26)
Socket[addr=/127.0.0.1,port=49295,localport=4444]
Tout d'abord les classe permettant de réaliser le 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
24
25
26
27
28
29
30
31
32
33
34
35
36
37 public class MultiServerThread extends Thread { private Socket socket = null; public MultiServerThread(Socket soc) { super("MultiServerThread"); this.socket = soc; } public void run() { try { System.out.println(this.socket); FileOutputStream f = new FileOutputStream("la.mp3"); BufferedOutputStream fr = new BufferedOutputStream(f); BufferedInputStream fenvoi = new BufferedInputStream(this.socket.getInputStream()); int octet = 0; while (octet != -1 ) { octet = fenvoi.read(); fr.write(octet); } fenvoi.close(); fr.close(); f.close(); this.socket.close(); } catch (Exception e) { e.printStackTrace(); } } }Maintenant la classe du client :
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 public class MultiServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = null; boolean listening = true; try { serverSocket = new ServerSocket(4444); } catch (IOException e) { System.err.println("Could not listen on port: 4444."); System.exit(-1); } while (listening) { new MultiServerThread(serverSocket.accept()).start(); serverSocket.close(); } } }
En ésperant des réponses, merci d'avance !
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 public class Client { static final int port = 4444 ; public static void main(String[] args) throws Exception { Socket socket = new Socket("localhost", port); System.out.println("SOCKET = " + socket); File fichier = new File("ici.mp3"); FileInputStream f = new FileInputStream(fichier); BufferedInputStream fr = new BufferedInputStream(f); BufferedOutputStream fenvoi = new BufferedOutputStream(socket.getOutputStream()); int octet = 0; while (octet != -1 ) { octet = fr.read(); fenvoi.write(octet); } fenvoi.close(); fr.close(); f.close(); socket.close(); } }
Partager