Olá Pessoal ???
Gente me ajuda eu estou com um problema com meu socket , tenho um aplicação cliente que acessa um especifico servidor na rede.
Esta aplicação cliente tem que ficar com o socket ativo para escutar o trafego de dados onde a cada recebimento de mensagem ele encaminha uma resposta automatica, mas estou tendo um problema apos o recebimento da primeira mensagem osocket responde normalmente o problema e que ele nao esta ficando ativo ou seja, ele recebe a primeira mensagem e termina a execução da aplicação.
Alguem pode me ajudar???
package src;
import java.io.DataInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class Inbox implements Runnable {
public static String rec;
public static String key;
public void run(){
try {
Socket Inbox = new Socket("177.43.122.158", 5000);
InputStream in = Inbox.getInputStream();
OutputStream out = Inbox.getOutputStream();
byte[] xml = "<?xml version=\"1.0\" encoding=\"ASCII\"?><Package><Header Version=\"1.0\" Id=\"1\" /><Data User=\"teste\" Password=\"123456\" /></Package>".getBytes();
out.write(xml);
out.flush();
in = new DataInputStream(Inbox.getInputStream());
byte[] buf = new byte[100000];
in.read(buf);
System.out.println(rec = new String(buf).trim());
key = rec.substring(rec.indexOf("{")+1,rec.indexOf("}", rec.indexOf("{")));
if( rec!=null){
String ack = "<?xml version=\"1.0\" encoding=\"ASCII\"?><Package><Header Version=\"1.0\" Id=\"98\" Reason=\"0\" Save=\"False\" /><Data /></Package>";
byte[] xml1 = ack.getBytes();
out.write(xml1);
out.flush();
}
} catch (Exception e) {
e.printStackTrace();
}
}