Как отправить и получить сериализованный объект в канале сокета
Я хочу передать сериализованный объект по каналу сокета. Я хочу сделать строку «Привет, друг» как сериализованный объект, а затем записать этот объект в канал сокета, в то время как на другом конце я хочу прочитать тот же объект и получить данные.
Все эти вещи, которые я хочу сделать с помощью JavaSocketChannel
, Как это сделать? Я попытался, как показано ниже, но не получил никаких данных на стороне получателя.
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;
}