【发布时间】:2010-11-29 23:54:11
【问题描述】:
我想通过套接字通道传输序列化对象。 我想将“嗨朋友”字符串作为序列化对象,然后将此对象写入套接字通道,而在另一端我想读取相同的对象并检索数据。
我想使用 Java SocketChannel 完成所有这些事情。这个怎么做?
我已经尝试如下,但在接收方没有得到任何数据。
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;
}
【问题讨论】:
-
问题不见了!
-
你的 SocketChannel 已经打开并连接了吗?
-
是的套接字通道已打开并已连接