1

我试图在 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();
4

1 回答 1

1

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

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

于 2013-01-07T20:55:37.943 回答