Bonsoir à tous,
j'ai décidé de me lancer dans la programmation Sockets en JAVA. Je me suis donc lancer dans la réalisation d'un ptit t'chat.
J'ai commencer par faire un ptit programme avec un serveur qui reçoit un message et qui l'affiche et un client qui se connecte au serveur et envois les fameux messages.
Mais le soucis voilà, lorsque je lance mon serveur et mon client, le serveur m'affiche que la connexion s'est bien réalisé mais lorsque je veux envoyer un message avec la fenêtre client, le message part bien mais n'arrive jamais à destination... Le serveur reste en attente de lecture de données... je ne vois vraiment pas où est le soucis.
Aidez - moi !
Un grand merci d'avance!
ma classe pour le serveur Test.java :
la classe pour le client TestClient.java
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 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; import javax.swing.JFrame; import javax.swing.JTextArea; public class Test { /** * @param args */ JFrame fen; static JTextArea pan; public Test() { pan = new JTextArea(""); fen = new JFrame("Serveur"); pan.setBounds(15, 15, 380, 380); pan.setEditable(false); fen.setSize(400, 400); fen.setLocationRelativeTo(null); fen.add(pan); fen.setResizable(false); fen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fen.setVisible(true); } public static void main(String[] args) { // TODO Auto-generated method stub new Test(); BufferedReader in; char[] car = new char[1]; try { ServerSocket serveur = new ServerSocket(2123); Socket client = serveur.accept(); if(client.isBound()) pan.append("Client connécté"); client.setKeepAlive(true); in = new BufferedReader(new InputStreamReader(client.getInputStream())); while(in.read(car) != -1) { System.out.print(car[0]); pan.append(""+car[0]); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; import javax.swing.JFrame; import javax.swing.JTextField; public class TestClient implements KeyListener { JFrame fen; static JTextField pan; static BufferedWriter out; public TestClient() { pan = new JTextField(); fen = new JFrame("Client"); pan.setBounds(10, 180, 375, 30); pan.addKeyListener(this); fen.setLayout(null); fen.setSize(400, 400); fen.setLocationRelativeTo(null); fen.add(pan); fen.setResizable(false); fen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fen.setVisible(true); } public static void main (String[] args){ new TestClient(); try { InetAddress ipLocal; ipLocal = InetAddress.getLocalHost(); //ipDistante = InetAddress.getByName("192.168.1.5"); Socket liaisonServeur = new Socket("192.168.1.5", 2123, ipLocal, 2321); out = new BufferedWriter(new OutputStreamWriter(liaisonServeur.getOutputStream())); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub } @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub } @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub if(e.getKeyChar() =='\n'){ char[] tab = new char [pan.getText().length()]; for(int i=0; i<pan.getText().length(); i++) { tab[i] = pan.getText().charAt(i); } try { System.out.println(tab); out.write(tab); pan.setText(""); } catch (IOException e1) { // TODO Auto-generated catch block System.out.println("Soucis!!"); e1.printStackTrace(); } } } }
Partager