Fórum Aplicação Java Trava ( utilizando sokets) #592197
05/04/2018
0
Olá pessoal...
Necessito muito da ajuda de vocês, Contarei a história desde o princípio !
Estou desenvolvendo uma aplicação java utilizando ServerSocket e socket para comunicar com o Arduino, estou criando uma comunicação entre eles onde o Java é o Servidor e o arduino um cliente. A aplicação java deve esperar o Arduino enviar uma mensagem(Atualização de status),para o servidor para que o mesmo possa atualizar essa mensagem em um JFrame que aparece para o usuário.
O Arduino está operando normalmente, porém a aplicação java acaba "travando" depois de algumas horas estando aberta e consequentemente o arduino perde a comunicação com o Java.
Bom, eu até tentei criar uma rotina para restartar o jFrame, porem não obtive sucesso, Alias, o codigo acima descrito é a função main do meu Jframe que se chama NewJFrame.
Qualquer Informação é muito bem Vinda !!! =D
Necessito muito da ajuda de vocês, Contarei a história desde o princípio !
Estou desenvolvendo uma aplicação java utilizando ServerSocket e socket para comunicar com o Arduino, estou criando uma comunicação entre eles onde o Java é o Servidor e o arduino um cliente. A aplicação java deve esperar o Arduino enviar uma mensagem(Atualização de status),para o servidor para que o mesmo possa atualizar essa mensagem em um JFrame que aparece para o usuário.
O Arduino está operando normalmente, porém a aplicação java acaba "travando" depois de algumas horas estando aberta e consequentemente o arduino perde a comunicação com o Java.
public static void main(String args[]) throws IOException, SQLException {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
frame = new NewJFrame();
frame.setVisible(true);
} catch (IOException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
try {
while (true) {
serverSocket = new ServerSocket(5555);
System.out.println("Aguardando Conexão...");
socket = serverSocket.accept();
System.out.println("Cliente Conectado !");
input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
msg = input.readLine();
jLabel1.setText("Status: " + msg);
System.out.println("Mensagem Recebida = " + msg);
input.close();
socket.close();
serverSocket.close();
System.out.println("Cliente Finalizado");
// contador = contador+1;
if (!msg.equals("")) {
verificaMensagem(msg);
}
// if(contador>=500){
// contador = 0;
// frame.dispose();//encerra a JFrame que esta Aparecendo na tela
// frame.setVisible(true);//Cria um novo JFrame
// }
}
} catch (IOException e) {
System.out.println("Erro ao Receber Mensagem !");
} catch (SQLException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
serverSocket.close();
} catch (IOException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Bom, eu até tentei criar uma rotina para restartar o jFrame, porem não obtive sucesso, Alias, o codigo acima descrito é a função main do meu Jframe que se chama NewJFrame.
Qualquer Informação é muito bem Vinda !!! =D
Jorge Maceulevicius
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)