communication entre serveur et client ?
bonjour,
je pense avoir réussi à faire que mon client se connecte à mon serveur, mais je n'ai pas réussi à transmettre un message de l'un à l'autre ou inversement.
j'utilise un thread pour lancer mon serveur avec ça:
Code:
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
|
try
{
//System.out.println("Server Up !");
ServerSocket serverS = new ServerSocket(4444); //server
Socket clientS = new Socket(); //client that should connect instance
System.out.println("Server Up ! Waiting for a client...");
//System.out.println("Le nom du thread principal est " + Thread.currentThread().getName());
clientS = serverS.accept(); //listen
PrintWriter out = new PrintWriter(clientS.getOutputStream(), true); //write to client
BufferedReader in = new BufferedReader(new InputStreamReader(clientS.getInputStream())); //read from client
while(in.readLine()!=null) //read string from client
{
in.readLine();
}
}
catch (IOException e)
{
System.err.println("erreur.");
System.exit(1);
} |
et mon client
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
try
{
Socket clientS = new Socket("127.0.0.1", 4444);
PrintWriter out = new PrintWriter(clientS.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientS.getInputStream()));
System.out.println("Client Started");
while (clientS != null)
{
out.println("check");
}
}
catch (UnknownHostException e)
{
System.err.println("Don't know about host 127.0.0.1");
System.exit(1);
}
catch (IOException e)
{
System.err.println("Couldn't get I/O for the connection to 127.0.0.1");
System.exit(1);
} |
Je ne comprends pas comment bien me servir de PrintWriter et BufferedReader et les tests que je fais me retournent souvent une "erreur" IOException coté serveur ou
Code:
1 2 3 4 5 6 7 8
| Exception in thread "Thread-1" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3332)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:596)
at java.lang.StringBuffer.append(StringBuffer.java:367)
at java.io.BufferedReader.readLine(BufferedReader.java:370)
at java.io.BufferedReader.readLine(BufferedReader.java:389)
at mtserver.ListenServer.run(ListenServer.java:41) |
comment bien recevoir une donnée ou comment bien la transmettre ?
merci