java中如何在套接字之间作为对象传递/写入哈希表
我正在尝试用java编写套接字之间的哈希表 但是得到这个错误: 错误:写入中止;java.io.NotSerializableException:java.net.Socket 我怎么会写 编辑:java中如何在套接字之间作为对象传递/写入哈希表,java,sockets,hashtable,Java,Sockets,Hashtable,我正在尝试用java编写套接字之间的哈希表 但是得到这个错误: 错误:写入中止;java.io.NotSerializableException:java.net.Socket 我怎么会写 编辑: socktmp= mainSocket.accept(); rdr= new BufferedReader( new InputStreamReader(socktmp.getInputStream())); String t=""; String n
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();
您不能序列化套接字。只能序列化可序列化对象的哈希映射。检查是否未添加任何匿名或嵌套类,这些类对包含套接字的对象具有隐式引用 顺便说一句:如果可以避免的话,不要使用哈希表。使用
HashMap或LinkedHashMap或ConcurrentHashMap。您不能序列化套接字。只能序列化可序列化对象的哈希映射。检查是否未添加任何匿名或嵌套类,这些类对包含套接字的对象具有隐式引用 顺便说一句:如果可以避免的话,不要使用哈希表。使用
HashMap或LinkedHashMap或ConcurrentHashMap。ahm为什么要尝试序列化套接字?你能给我们展示一下你的代码并描述一下你到底想做什么吗?我们需要看看你的一些代码。您提供的错误表明您正在尝试将套接字对象写入套接字而不是哈希表,但除非我们看到代码,否则无法确定。请稍后检查,实际上我想让客户端知道与服务器连接的所有其他客户端。ahm为什么要尝试序列化套接字?你能给我们展示一下你的代码并描述一下你到底想做什么吗?我们需要看看你的一些代码。您提供的错误表明您试图将套接字对象写入套接字,而不是哈希表,但除非我们看到代码,否则无法确定。请稍后检查,实际上,我想让客户机知道与服务器连接的所有其他客户机。实际上,我想让客户机知道与服务器连接的所有其他客户机。所以我把所有客户机的套接字放在哈希表中。你必须提取其他客户机需要的信息,然后发送这些信息。您无法发送套接字对象,因为它无法反序列化。实际上,我想让客户端知道与服务器连接的所有其他客户端。所以我把所有客户机的套接字放在哈希表中。你必须提取其他客户机需要的信息,然后发送这些信息。无法发送套接字对象,因为它无法反序列化。