简体   繁体   English

如何在Java中的套接字之间将哈希表作为对象传递/写入

[英]how to pass/write hashtable as object between sockets in java

im trying to write hashtable between sockets in java but getting this error : Error : writing aborted; 即时通讯试图在Java中的套接字之间写入哈希表,但出现此错误:错误:编写中止; java.io.NotSerializableException: java.net.Socket java.io.NotSerializableException:java.net.Socket

How i can write 我怎么写

EDITED : 编辑:

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

You can't serialise a Socket. 您无法序列化Socket。 You can only serialize HashMaps of objects which are Serializable. 您只能序列化可序列化对象的HashMap。 Check you are not adding any anonymous or nested classes with implicit references to an Object which holds a Socket. 检查您是否没有添加任何对包含Socket的对象的隐式引用的匿名或嵌套类。

BTW: Don't use Hashtable if you can avoid it. 顺便说一句:如果可以避免,请不要使用Hashtable。 Use HashMap or LinkedHashMap or ConcurrentHashMap instead. 请改用HashMap或LinkedHashMap或ConcurrentHashMap。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM