我有这个问题,我无法弄清楚什么是错的。我在整个互联网上进行了搜索,但没有成功。
所以,我必须通过 Java 中的套接字发送一个对象,但我不知道该怎么做。我尝试了很多方法。我序列化了对象,我尝试直接写对象。但似乎没有任何效果。
细节是我有一个并行运行的聊天。有时当我打开 ObjectOutputStream 或 ObjectInputStream 时,我会陷入死锁。我想你们可以帮助我。
这是一个客户端连接到服务器的刽子手游戏,服务器应该向客户端发送一个随机单词,这是一个对象。
服务器:
try{
socketConexao = socketRecepcao.accept();
toClient = new DataOutputStream(socketConexao.getOutputStream());
fromClient = new BufferedReader(new InputStreamReader(socketConexao.getInputStream()));
//starts the chat
Thread chat = new Thread(this);
chat.start();
}catch(IOException e){}
//i dont really know how to send the object
try{
byte[] bytes = serialize(palavraSorteada);
toClient.write(bytes);
} catch (IOException e){
e.printStackTrace();
}
客户:
socketCliente = new Socket(ip, port);
toServer = new DataOutputStream(socketCliente.getOutputStream());
fromServer = new BufferedReader(new InputStreamReader(socketCliente.getInputStream()));
// starts the chat
Thread chat = new Thread(this);
chat.start();
}catch(IOException e){System.exit (0);}
// and dont really know how to receive the object
try{
ObjectInputStream os = new ObjectInputStream(socket.getInputStream());
palavraSorteada = (Palavra) os.readObject();
os.close();
}catch(Exception e){
e.printStackTrace();
}