Bonjour,
J'essaye de faire un client et un serveur en multithread mais le serveur ne veut pas fonctionner. J'ai l'erreur suivante :
Client
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 import java.io.*; import java.net.*; import java.util.Scanner; public class Client { public static void main(String[] args) { try { Socket s = new Socket("localhost", 3030); InputStream is = s.getInputStream(); OutputStream os = s.getOutputStream(); System.out.println("Lire un nobre NB"); Scanner clavier = new Scanner(System.in); int nb = clavier.nextInt(); System.out.println("envoyer le nombre" + nb + "au serveur"); os.write(nb); System.out.println("attedre la réponse du serveur:"); int rep = is.read(); System.out.println("La réponse est :" + rep) ; } catch(IOException e){ e.printStackTrace();} } }
Exécution :
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
38
39
40
41
42
43
44
45
46
47
48
49
50 import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class MultiThreadedServer { public static void main(String []args){ System.out.print("Serveur en ligne\n"); //declare a TCP socket object and initialize it to null ServerSocket serverSocket=null; //create the port number int port = 3030; try { //create the TCP socket server serverSocket = new ServerSocket(3030); System.out.println("ECHO server created on port = "+port); } catch (IOException ex) { //will be executed when the server cannot be created System.out.println("Error: The server with port="+port+" cannot be created"); } //starts an endless loop while(true){ Socket clientSocket = null; try { //start listening to incoming client request (blocking function) System.out.println("[ECHO Server] waiting for the incoming request ..."); clientSocket = serverSocket.accept(); } catch (IOException e) { System.out.println("Error: cannot accept client request. Exit program"); return; } try { //create a new thread for each incoming message new Thread(new Run(clientSocket, "Multithreaded Server")).start(); } catch (Exception e) { //log exception and go on to next request. } } } }
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 import java.io.*; import java.net.Socket; import java.util.Scanner; public class Run implements Runnable{ protected Socket clientSocket = null; protected String serverText = null; public Run(Socket clientSocket, String serverText) { this.clientSocket = clientSocket; this.serverText = serverText; } public void run() { try { InputStream input = clientSocket.getInputStream(); OutputStream output = clientSocket.getOutputStream(); InputStreamReader inputStream = new InputStreamReader(input); BufferedReader bufferedReader = new BufferedReader(inputStream); String message = null; message = bufferedReader.readLine(); if (message != null) { System.out.println("j'attend le nom de client"); Scanner sc = new Scanner(System.in); String nom = sc.nextLine(); } else {System.out.println("j'attend un nombre (1 octet)"); int nb=input.read(); System.out.println("j envoi la repense"); output.write(nb*5); System.out.println("deconexion de client"); output.close(); input.close(); } } catch (IOException e) { //report exception somewhere. e.printStackTrace(); } } }
Partager