Bonjour,
Après maint recopiage, copier-coller, je n'arrive toujours pas à communiquer avec mon "serveur" mutlithread (exemple repris du net).
J'arrive à me connecter dessus mais n'arrive pas à lui envoyer de messages... Il doit manquer un truc important.
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
28
29
30
31
32 import java.io.*; import java.net.*; import java.util.Scanner; public class Client { public Client() { Scanner keyboard = new Scanner(System.in); try { Socket socket = new Socket("localhost", 8080); BufferedReader from_server = new BufferedReader( new InputStreamReader(socket.getInputStream())); PrintWriter to_server = new PrintWriter(socket.getOutputStream()); System.out.println("Established connection"); while (true) { System.out.print("You> "); String line = keyboard.nextLine(); to_server.write(line); to_server.flush(); if (line.equals("exit")) break; } } catch (IOException ioe) { System.out.println(ioe.getMessage()); } } public static void main(String[] args) { Client client = new 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 package Clients_Server; import java.io.*; import java.net.*; public class Server { public static void main(String args[]) { int nreq = 1; try { ServerSocket ssocket = new ServerSocket(8080); while(true) { Socket socket = ssocket.accept(); System.out.println("Creating thread..."); Thread t = new ThreadHandler(socket, nreq); t.start(); nreq++; } } catch(Exception e) { System.out.println("IO error: " + e.getMessage()); } } }
La prise en charge du multithread
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 package Clients_Server; import java.io.*; import java.net.*; public class ThreadHandler extends Thread { Socket socket; int n; public ThreadHandler(Socket socket, int n) { this.socket = socket; this.n = n; run(); } public void run() { try { BufferedReader plec = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter pred = new PrintWriter(new BufferedWriter(new OutputStreamWriter( socket.getOutputStream()))); pred.write("Hello :: enter exit to exit ;)"); while (true) { String line = plec.readLine(); System.out.println(line); pred.println(line); plec.readLine(); if (line.trim().equalsIgnoreCase("exit")) { break; } } socket.close(); plec.close(); pred.close(); } catch (Exception e) { System.out.println("IO errer: " + e.getMessage()); } } }
Merci pour votre aide![]()
Partager