Communication Serializable par Socket
Je travaille sur une Appi qui utilise une classe Serializable que je passe par une Socket et que je reprend sur une autre instance.
ma classe serializable:
Code:
1 2 3 4 5 6 7 8 9 10 11
| class Message implements Serializable {
public String name;
public String channel;
public String message;
public Message() {
}
} |
Envoyer:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| sbox.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent evt) {
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
try {
Socket s = new Socket("127.0.0.1", 1299);
Message msg = new Message();
msg.name = "GetTriggerUnit-";
msg.channel = "Main Channel";
msg.message = sbox.getText();
ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream());
out.writeObject(msg);
out.close();
sbox.setText("");
} catch (Exception ex) {ex.printStackTrace();}
}
}
}); |
Recevoir:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| private Message curr;
private void startReceiving() {
Thread t = new Thread() {
public void run() {
try {
while (true) {
Socket s = new Socket("127.0.0.1", 1299);
ObjectInputStream in = new ObjectInputStream(s.getInputStream());
System.out.println(in);
Message msg = (Message) in.readObject();
if (curr != msg) {
pane.setText(pane.getText() + msg.name + " has said " + msg.message + " in channel " + msg.channel + System.getProperty("line.separator"));
curr = msg;
}
}
} catch (Exception ex) {ex.printStackTrace();}
}
};
t.start();
} |
Les sockets n'arrive pas a communiquer ensenmble. Il n'y a auncune erreur...
Oh! et voici mon serveur
Code:
1 2 3 4 5 6 7 8 9
| public main() {
try {
ServerSocket ss = new ServerSocket(1299);
while (true) {
Socket s = ss.accept();
System.out.println(s.getInetAddress());
}
} catch (IOException ex) {}
} |