Socket (out.println)

3 respostas
TeiTei

Galera quando eu uso o objeto que e uma instancia da classe PrintWriter mais que uma vez seguida ele nao atende os d+ apenas o a 1º chamada veja ex:

PrintWriter out =new PrintWriter (socket.getOutputStream(), true);

out.println(vai);

out.println(vai2);

out.println(vai3);

So manda para o servidor o 1° o “vai”, alguem pode me ajudar?

3 Respostas

T

Não se esqueça de usar “flush” depois de mandar cada linha.

TeiTei

usei mas mesmo assim so mana o 1º

T

Uma coisa que aprendi, ao usar sockets, é que é bastante difícil usá-los corretamente sem entender como é que funcionam.

Eu havia esquecido de mencionar que é necessário, quando se usa esse tipo de “não-protocolo” com sockets (ou seja, usá-lo como se fosse imprimir os dados no console), que é necessário desabilitar uma otimização do socket TCP/IP (“Nagle Algorithm”). Ou seja, é necessário usar:

socket.setTcpNoDelay (true);

onde “socket” é uma variável se referindo à classe de socket que você encapsulou com o PrintWriter.

Criado 26 de novembro de 2007
Ultima resposta 26 de nov. de 2007
Respostas 3
Participantes 2