我目前正在开展一个小型聊天程序,下一步我想从我的服务器向我的客户发送哈希表。
然而,到目前为止我一直在使用
PrintWriter out = new PrintWriter(socket.getOutputStream());
在我的Server类中,
Scanner in = new Scanner(socket.getInputStream());
在我的Client类中,用于将字符串形式的消息从两个套接字传输到连接的相应另一端。
这不再适用于Hashtables,因为它们不是原始数据类型。
我必须使用什么才能将我的Hashtable完全发送给我的客户?
答案 0 :(得分:2)
由于Hashtable
实现了java.io.Serializable
接口,您可以序列化对象并通过套接字的输出流发送它:
Hashtable table = new Hashtable(); // TODO: avoid raw types
...
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
oos.writeObject(table);
oos.close();
要阅读客户端中的对象,您需要使用ObjectInputStream
:
InputStream is = socket.getInputStream();
ObjectInputStream ois = new ObjectInputStream(is);
Hashtable table = (Hashtable) ois.readObject();