Bonjours, c'est ma première tentative client-serveur et mon premier test ne fonctionne pas du tout...
Premièrement, le client (le strict minimum):
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 public static void main(String[] args) { try{ Socket client = new Socket("127.0.0.1", 6666); ObjectOutputStream streamOut = new ObjectOutputStream(new DataOutputStream(new BufferedOutputStream(client.getOutputStream()))); ObjectInputStream streamIn = new ObjectInputStream(new DataInputStream(client.getInputStream())); streamOut.writeUTF("HEY CA MARCHE!!!!"); streamOut.writeUTF("Ca Marche encore!!"); streamOut.writeUTF("Ca Marche encore et toujours!!!!"); }catch(Exception e){ System.out.println(e.getMessage()); } }
et puis le serveur (le strict minimum):
Mon problème est le suivant. Le serveur s'arrête sur client = serveur.accept(); comme prévu. Parcontre, quand le client arrive à Socket client = new Socket("127.0.0.1", 6666);, le serveur ne recoit toujours pas sa connection! Le client continue donc son code et envoie son texte dans le vide. Une fois le code du client terminé (le client est donc fermé) le serveur continue finalement sur la ligne suivante, qui ajoute le client dans sa liste. Malheureusement, à se moment il est trop tard car le client est déjà fermé. Pourquoi le serveur ne voit-il pas le client quand celui-ci créé son Socket?
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 public static Vector clients; public static ServerSocket server; public static boolean fin = false; public static void main(String[] args) { Socket client = null; clients = new Vector(); try{ server = new ServerSocket(6666); server.setSoTimeout(1000); }catch(Exception ioe){ System.out.println(ioe.getMessage()); } while(!fin){ try{ client = server.accept(); }catch(IOException exc){ System.out.println("Attente..."); } if(client != null){ clients.add(new CommunicationClient(client)); client = null; } } }
Partager