如何将哈希表发送到我的clientsocket?

时间:2015-05-30 08:42:05

标签: java sockets hashtable

我目前正在开展一个小型聊天程序,下一步我想从我的服务器向我的客户发送哈希表。

然而,到目前为止我一直在使用

PrintWriter out = new PrintWriter(socket.getOutputStream());

在我的Server类中,

Scanner in = new Scanner(socket.getInputStream());

在我的Client类中,用于将字符串形式的消息从两个套接字传输到连接的相应另一端。

这不再适用于Hashtables,因为它们不是原始数据类型。

我必须使用什么才能将我的Hashtable完全发送给我的客户?

1 个答案:

答案 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();