Cómo enviar y recibir objetos serializados en el canal socket
Quiero transmitir un objeto serializado a través de un canal de socket. Quiero hacer la cadena "Hola amigo" como objeto serializado y luego escribir este objeto en el canal de socket, mientras que en el otro extremo quiero leer el mismo objeto y recuperar los datos.
Todas estas cosas que quiero hacer usando Java.SocketChannel
. ¿Como hacer esto? He intentado como a continuación, pero no obtuve ningún dato en el lado del destinatario.
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;
}