Bom galera, minha dúvida está exatamente no código do tópico. Estou desenvolvendo um siteminha operacional pra onde trabalho, mas estou começando a trabalhar com Sockets e iniciei a desenvolver um sis. de chat:
No Servidor, para receber novas mensagens ele tem o código:
public void run() {
while (b_status_servidor) {
try {
Obj = (transObj) maq_ler.readObject();
escreverNoPrompt(Obj.getNOME() + " :: " + Obj.getMSG());
EspalharMSG(Obj);
// maq_ler.;
// recarregaMaq_leitora(CON);
} catch (Exception ex) {
Logger.getLogger(engine_chat_servidor.class.getName()).log(Level.SEVERE, null, ex);
ex.printStackTrace();
}
}
}
No cliente, temos:
public void enviarMSG() {
try {
Obj.setMSG(campo_entrada.getText());
maq_escrever.writeObject(Obj);
campo_entrada.setText("");
} catch (Exception ex) {
Logger.getLogger(engine_chat_client.class.getName()).log(Level.SEVERE, null, ex);
escrever_no_prompt("Sistema :: Falha ao enviar mensagem!");
campo_entrada.setText("");
ex.printStackTrace();
}
}
O Sistema:
- Connecta com sucesso.
- Recebe a primeira mensagem com sucesso!
x O cliente envia uma segunda mensagem, mas o servidor fica lendo repetitivamente o primeiro objeto enviado, e redistribui este também.
transObj é o objeto que contém como instâncias as informações básicas de quem enviou o comando, como getNOME() e getMSG().
Imagino que o primeiro objeto está “preso” e não sei como liberá-lo, sou iniciante em java.
‘-’ :q …