Demora SOCKET

2 respostas
S

Amigos

Essa linha de codigo envia para um servidor uma ISO…o processo esta sendo executado no servidor em 3 segundos, porém a mensagem de retorno eu não consigo ler no mesmo segundo, demora muito a leitura cerca de 3 minutos.
O que poderia ser ?

Me ajudem, por favor.

linha de codigo_____________

import java.io.; // classes para input e output streams
import java.net.
; // classes para socket, serversocket e clientsocket

class TCPClient {

public static void main(String argv[]) throws Exception

{

String sentence;

String modifiedSentence;

// cria o stream do teclado
BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in));

Socket clientSocket = new Socket(“ip”, “porta”);

// cria os streams (encadeamentos) de entrada e saida com o servidor

DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());

BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
// le uma linha do teclado e coloca em sentence

//sentence = inFromUser.readLine();

sentence = 01006820030001C0000810232323232331000000000000025900029801700900400000003         7910304478958004578250100043240000000       00000000;

// envia a linha para o server

outToServer.writeBytes(sentence);

// lê uma linha do server
modifiedSentence = inFromServer.readLine();

// apresenta a linha do server no vídeo
System.out.println("Retorno : " + modifiedSentence + ‘\n’); //demora muito para imprimir na tela, este READLINE é o comando apropriado ?

// fecha o cliente

clientSocket.close();

}

}

2 Respostas

T

Nos dois lados do tratamento do socket (você tem acesso aos dois lados, não?) é necessário usar o método setTcpNoDelay com o parâmetro “true”.

KWill

Não sei o quanto chamar o método “flush()” na hora de enviar ajudaria, mas creio que não custa tentar.

Inté.

Criado 19 de janeiro de 2009
Ultima resposta 19 de jan. de 2009
Respostas 2
Participantes 3