Bonjour,

J'essaye de faire un client et un serveur en multithread mais le serveur ne veut pas fonctionner. J'ai l'erreur suivante : Nom : 1.png
Affichages : 515
Taille : 3,8 Ko
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
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();}
	}
 
}
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
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.
            }
        }
 
    }
 
 }
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
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();
        }
    }
 
}