Je souhaite transmettre un objet sérialisé sur un canal de socket. Je veux créer une chaîne "Hi friend" en tant qu'objet sérialisé, puis écrire cet objet dans le canal de socket alors que dans l'autre extrémité je veux lire le même objet et récupérer les données.Comment envoyer et recevoir un objet sérialisé dans le canal de socket
Toutes ces choses que je veux faire en utilisant Java SocketChannel
. Comment faire ça? J'ai essayé comme ci-dessous, mais je n'ai reçu aucune donnée du côté du destinataire.
private static void writeObject(Object obj, SelectionKey selectionKey) {
ObjectOutputStream oos;
try {
SocketChannel channel = (SocketChannel) selectionKey.channel();
oos = new ObjectOutputStream(Channels.newOutputStream(channel));
oos.writeObject(obj);
} catch (IOException ex) {
ex.printStackTrace();
}
}
private static Object readObject(SelectionKey selectionKey) {
ObjectInputStream ois;
Object obj = new Object();
SocketChannel channel = (SocketChannel) selectionKey.channel();
try {
ois = new ObjectInputStream(Channels.newInputStream(channel));
obj = ois.readObject();
} catch (Exception ex) {
ex.printStackTrace();
}
return obj;
}
La question est manquante! – tuergeist
Votre SocketChannel est-il déjà ouvert et connecté? – tuergeist
oui canal de socket est ouvert et connecté –