Eu fiz um programa server pra testar isso e fico com os dois na tela.
Dai eu faco um loop no cliente com write e flush e depois faco ele esperar 4 segundos com Thread.Sleep(4000);
Enquanto isso eu fico de olho no servidor e nada aparece.
Depois que no terminad do cliente eu vejo os 4 envios e faco o sk.close, aparece na tela do servidor :?
System.out.println("Impressora - Obtendo buffer...");
OutputStream os = sk.getOutputStream();
os.write(vZPL.getBytes());
os.flush();
//PrintWriter saida = new PrintWriter(sk.getOutputStream(),true);
//os.close();
os = null;
//saida.print(vZPL.toString());
//saida.write(vZPL.toString());
System.out.println(vZPL.toString());
System.out.println(" ENVIOU ");
Thread.sleep(4000);
Essa minha classe só faz o envio, entao nao tem muito como colocar o loop pois esta em outra classe, mas imagine que eu chamo esse método 4 vezes. Na tela cliente ele imprime uma vez o texto e o ENVIOU e no servidor nada, faz isso mais 3 vezes e no servidor nada. Dai quando chamo o metodo fechaPorta do cliente que ele faz o sk.close, sao impressos todos so 4 frames no terminal do servidor :cry:
public void fechaPorta(){
try
{
sk.close();
sk = null;
System.out.println(" Desconectou...");
}
catch (Exception e)
{
e.printStackTrace();
}
}
Como pode ver no comentario acima, ja usei o printWriter e deu na mesma...
Obrigado!
P.S. acho que esse cara tava com o mesmo problema que eu, mas acho que nao resolveu tambem
[url]http://forum.java.sun.com/thread.jspa?threadID=531181&tstart=255[/url]