Bonsoir,
j'ai un programme contenant un serveur et un client..
le serveur cache un mot, et le client doit le trouver en envoyant des lettres... chaque fois que le client envoie un lettre, il doit recevoir du serveur "ok" si la lettre se trouve dans le mot, et "no" dans le cas contraire
j'ai crée une classe serveur et une classe thread, avec une classe client...
et voila mon code dans lequel le serveur affiche correctement mais le client non:
thread. mon problème c'est que le client n'arrive pas a lire le message provenant du serveur....
c'est le code du serveur:
et c'est le code du serveur thread:
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 import java.net.ServerSocket; import java.net.Socket; public class ServeurMC { public static void main(String[] args) { try{ ServerSocket sSoc = new ServerSocket(2010); while(true){ System.out.print("kkk"); Socket inSock = sSoc.accept(); threadMc tmc= new threadMc (inSock); tmc.start(); } }catch(Exception e){ System.out.println("erreur" + e.toString()); } } }
et le code 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.Socket; public class ThreadMc extends Thread{ Socket threadsoc; int n = 0, maxLettre= 10; String mot = "Pakistan", lettre; BufferedReader bufferRead; PrintStream printStream; ThreadMc (Socket inSec){ threadsoc= inSec; } public void run(){ try{ n++; bufferRead = new BufferedReader(new InputStreamReader(threadsoc.getInputStream())); printStream= new PrintStream(threadsoc.getOutputStream()); do{ BufferedOutputStream buffOutStream = new BufferedOutputStream(threadsoc.getOutputStream()); lettre = bufferRead.readLine(); printStream.println(lettre); System.out.print(lettre); if(Mot.indexOf(lettre)!=-1) { System.out.println("ok"); buffOutStream.write(1); buffOutStream.flush(); } else { System.out.println("no"); buffOutStream.write(0); buffOutStream.flush(); } }while(n<maxLettre); }catch(Exception e){ System.out.println("erreur" + e.toString());} } }
merci pour vos aides
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 import java.io.*; import java.net.*; public class ClientMC { public static void main(String[] args) { Socket clientsoc; BufferedInputStream buffInStream; PrintStream printStream; int message; String mess; try{ clientsoc = new Socket("localhost", 2010); printStream= new PrintStream(clientsoc.getOutputStream()); int n=0; do{ n++; System.out.println("une lettre?"); BufferedReader buffRead = new BufferedReader(new InputStreamReader(System.in)); mess =buffRead.readLine(); printStream.println(mess); buffInStream = new BufferedInputStream(clientsoc.getInputStream()); message=buffInStream.read(); System.out.println(message); if(message==1) System.out.println("ok"); if(message==0) System.out.println("no"); }while (n!=11); } catch (Exception e) { System.out.println("erreur" + e.toString()); } } }
Partager