Bonjour à tous,
j 'ai deux applications qui communiquent entre elles par un system Client/Serveur. le serveur est écrit en java, le client, quant à lui est écrit en C.
Mon client envoie des chaines de caractères au serveur qui se contente des les afficher pour le moment. La connection à bien lieu, mais il n'affiche rien du tout.
je pense que cela vient du fait que JAVA travaille avec des chaines de caractères UNICODE, tandis que le C ne connais que l'ASCII.
Voici le code du serveur qui attend l'arrivée des chaines de caractères,
Mon serveur reste bloque sur la ligne readUTF() et n'en sort que lorsque mon client est mort.
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 public class PolygenServer implements Runnable { private DataInputStream fromClient; private PrintStream toClient; private Thread currentThread; public PolygenServer() { currentThread = new Thread(this); currentThread.start(); } public void run() { try { ServerSocket server = new ServerSocket(1234); System.out.println("PolygenServer::Run ==> Create server"); System.out.println("PolygenServer::Run ==> Waiting for connexion"); Socket client = server.accept(); System.out.println("PolygenServer::Run : "+client); fromClient = new DataInputStream(client.getInputStream()); toClient = new PrintStream(client.getOutputStream()); getAndDisplayMessages(); } catch (IOException ex) { System.out.println("PolygenServer::Run ==> Can't create server"); } } public void getAndDisplayMessages() { String line; char Val; do { try { line = fromClient.readUTF(); System.out.println(line); } catch (IOException ex) { System.out.print("End of reception"); line = null; } } while (line != null); } }
Qui peut m'aider à sortir de cette galère !
merci d'avance
Partager