plop,

cas ecole, je dois realiser un server/client, le client envoie des addition ou soustraction infixe au server et celui ci renvoi le resultat au client.

le protocole est le suivant :
client > envoie signe, envoie nombre 1, envoie nombre 2
server > calcul puis renvoi
client > reception, affichage, puis envoi de y ou n pour continuer
server > reception de y ou n et on continue ou on arrette

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 
package client_server;
 
import java.io.*;
import java.net.*;
 
import utilitaire.Clavier;
 
 
public class client {
 
	/**
         * @param argv
         */
	public static void main( String[] argv ){
		try {
 
			InetAddress adresseServeur = InetAddress.getByName( "localhost" );	// recherche de l'adresse du serveur
			Socket client = new Socket( adresseServeur, 2010 );					// connection au serveur
 
			InputStream InputString = client.getInputStream();
			DataInputStream DIS = new DataInputStream(InputString);
 
			OutputStream OutputString = client.getOutputStream();
			DataOutputStream DOS = new DataOutputStream(OutputString);
 
			char signe;
			char continuation;
			String buffer;
			int nb1;
			int nb2;
			int result;
			do{
			   continuation = 'n';
			   System.out.println( "C>signe + ou - ? : ");
			   buffer = Clavier.lireString();
			   signe = buffer.charAt(0);
 
			   System.out.println( "C>premier nombre : ");
			   nb1 = Clavier.lireInt();
			   System.out.println( "C>deuxiemme nombre : ");
			   nb2 = Clavier.lireInt();
 
			   DOS.writeChar(signe);								// envoi d'une trame au serveur
			   DOS.writeInt(nb1);
			   DOS.writeInt(nb2);
 
			   result = DIS.readInt();
 
			   System.out.println( "C> reponse server : " +result );
 
			   System.out.println( "C> on continue? (y/n): ");
			   buffer = Clavier.lireString();
			   continuation = buffer.charAt(0);
 
			   DOS.writeChar(continuation);
			   }while(continuation == 'y');
			//Thread.sleep( 5000 );
 
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println("finit");
	}
 
}
server

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 
package client_server;
 
import java.io.*;
import java.net.*;
 
import utilitaire.Clavier;
 
public class server {
 
	/**
         * @param argv
         */
	public static void main( String[] argv ){
		try {
 
 
 
			InetAddress adresseServeur = InetAddress.getByName( "localhost" );	// recherche de l'adresse du serveur
			Socket client = new Socket( adresseServeur, 2010 );					// connection au serveur
 
			InputStream InputString = client.getInputStream();
			DataInputStream DIS = new DataInputStream(InputString);
 
			OutputStream OutputString = client.getOutputStream();
			DataOutputStream DOS = new DataOutputStream(OutputString);
 
			char signe;
			char continuation;
			String buffer;
			int nb1;
			int nb2;
			int result;
			do{
			   continuation = 'n';
			   System.out.println( "C>signe + ou - ? : ");
			   buffer = Clavier.lireString();
			   signe = buffer.charAt(0);
 
			   System.out.println( "C>premier nombre : ");
			   nb1 = Clavier.lireInt();
			   System.out.println( "C>deuxiemme nombre : ");
			   nb2 = Clavier.lireInt();
 
			   DOS.writeChar(signe);								// envoi d'une trame au serveur
			   DOS.writeInt(nb1);
			   DOS.writeInt(nb2);
 
			   result = DIS.readInt();
 
			   System.out.println( "C> reponse server : " +result );
 
			   System.out.println( "C> on continue? (y/n): ");
			   buffer = Clavier.lireString();
			   continuation = buffer.charAt(0);
 
			   DOS.writeChar(continuation);
			   }while(continuation == 'y');
			//Thread.sleep( 5000 );
 
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println("finit");
	}
 
}
voila, ça marche, maintenant je voudrais pouvoir gerer plusieur client en meme temps, pour ce faire, j'utilise des thread

je ne touche pas au client, aucun interet, pour le server :
je met la partie code dans le run() du thread
je met la partie attente de connection dans le main du server, et a chaque connection, je creer un nouveau thread

seulement voila, regardez moi ça :



Uploaded with ImageShack.us

socketClient.getInputStream n'est plus reconnu, une idée de pourquoi?

merci