我有这个问题,我无法弄清楚什么是错的。我在互联网上搜索过,但没有成功。
所以,我必须通过Java中的套接字发送一个对象,而我无法弄清楚如何去做。我尝试了很多方法。我序列化了对象,我试图直接写对象。但似乎没有任何工作。
细节是我有一个并行的聊天。有时当我打开一个ObjectOutputStream或ObjectInputStream时,我会陷入僵局。我想你们可以帮助我。
它是客户端连接到服务器的hang子手游戏,服务器应该向客户发送一个随机词,这是一个对象。
服务器:
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();
}