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 :

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();
		}
 
	}
 
}
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
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();
			}
		}
	}
 
}