Problema com Socket em Unix, mesmo código funciona no Windows

Bom dia pessoal.

Tenho o código java abaixo que funciona quando executo na minha máquina windows 8, mas quando envio para o servidor unix o mesmo código não funciona, e da timeout no método din.read().

Por favor, alguém sabe o que é ?

socket2 = new Socket (ip, porta);
socket2.setSoTimeout(3000);
PrintStream pout = new PrintStream ( socket2.getOutputStream() );
DataInputStream din = new DataInputStream( socket2.getInputStream() );
pout.println(“GST”); //não tenho certeza se a outra ponta esta recebendo esse comando
pout.flush();
int retint = din.read(); //nessa linha ocorre erro de timout
System.out.println( retint );
fechaSocket(socket2);
return “”+ retint;