Tôi muốn truyền một đối tượng được tuần tự hóa qua một kênh ổ cắm. Tôi muốn tạo chuỗi "Hi friend" làm đối tượng được tuần tự hóa và sau đó viết đối tượng này vào kênh socket trong khi ở đầu kia tôi muốn đọc cùng một đối tượng và lấy dữ liệu.Cách gửi và nhận đối tượng được tuần tự hóa trong kênh ổ cắm
Tất cả những điều này tôi muốn thực hiện bằng Java SocketChannel
. làm như thế nào? Tôi đã thử như dưới đây, nhưng không nhận được bất kỳ dữ liệu nào ở phía người nhận.
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;
}
Java được thiếu! – tuergeist
SocketChannel của bạn đã được mở và kết nối chưa? – tuergeist
kênh ổ cắm có mở và kết nối –