У меня такая проблема, и я не могу понять, что не так. Я искал по всему Интернету, но безуспешно.
Итак, мне нужно отправить объект через сокеты в 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();
}