Boa tarde, estou tentando consumir um sockect onde o server é em Delphi e o cliente é em Java. O grande problema é que quando insiro um breakpoint no código e debugo ele executa normalmente, e quando removo ele não executa. Parece que não está esperando o tempo da conexão para enviar a resposta. Abaixo segue o código da minha classe:
public class SocketClient {
private String url = "";
private String port = "";
public SocketClient(Global gb) throws Exception{
url = Query.sLookUp(ControleServ.getPropertyAplication("ParametrosDoSistema"), "valorparamsis", "nomeparamsis = 'URLSocket'", gb.getSt()).trim();
port = Query.sLookUp(ControleServ.getPropertyAplication("ParametrosDoSistema"), "valorparamsis", "nomeparamsis = 'PortSocket'", gb.getSt()).trim();
if(url.isEmpty())throw new Exception("O Parâmetro 'URLSocket' não foi encontrado!");
if(port.isEmpty())throw new Exception("O Parâmetro 'PortSocket' não foi encontrado!");
}
public String servico(String parametros) throws Exception{
String caminho = "";
Socket socket = new Socket (url, Integer.parseInt(port));
socket.setKeepAlive(true);
boolean sConn = socket.isConnected();
if(sConn){
/*Passando parâmetros para o socket*/
DataOutputStream ostream = new DataOutputStream(socket.getOutputStream());
/*Recebendo resposta do socket*/
InputStreamReader isr = new InputStreamReader(socket.getInputStream());
BufferedReader brd = new BufferedReader(isr);
//DataInputStream istream = new DataInputStream(socket.getInputStream());
ostream.writeBytes(parametros);
ostream.flush();
//caminho = brd.readLine();
boolean loop = true;
StringBuilder sb = new StringBuilder(8096);
while (loop) {
if (brd.ready()) {
int i = 0;
while (i != -1) {
i = brd.read();
sb.append((char) i);
}
loop = false;
}else
loop = true;
}
caminho = sb.toString();
socket.close();
}
return caminho;
}
}
Se alguem puder me dar um auxilio ai, agradeço !!!