我试图在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();
答案 0 :(得分:1)
您无法将Socket序列化。您只能序列化可序列化对象的HashMaps。检查您是否添加了任何匿名或嵌套类,其中包含对包含Socket的Object的隐式引用。
顺便说一句:如果可以避免,请不要使用Hashtable。使用 改为使用HashMap或LinkedHashMap或ConcurrentHashMap。