如何在java中的套接字之间传递/写入hashtable作为对象

时间:2013-01-07 20:51:27

标签: java sockets hashtable

我试图在java中的套接字之间编写哈希表 但得到这个错误: 错误:写入已中止; java.io.NotSerializableException:java.net.Socket

我怎么写

已编辑:

 socktmp= mainSocket.accept();
        rdr= new BufferedReader( new InputStreamReader(socktmp.getInputStream()));
        String t="";
        String name=rdr.readLine();

        //rdr.close();
        LstClient.AddClient(name, socktmp);

        objwriter = new ObjectOutputStream(socktmp.getOutputStream());
        objwriter.writeObject(LstClient.clients);
        objwriter.flush();  
        objwriter.close();

1 个答案:

答案 0 :(得分:1)

您无法将Socket序列化。您只能序列化可序列化对象的HashMaps。检查您是否添加了任何匿名或嵌套类,其中包含对包含Socket的Object的隐式引用。

顺便说一句:如果可以避免,请不要使用Hashtable。使用  改为使用HashMap或LinkedHashMap或ConcurrentHashMap。