Olá a todos.
Galera é o seguinte, estou desenvolvendo uma aplicacao basica cliente-servidor, o cliente tem que enviar um arquivo para o servidor… apenas isso.
O Problema é o seguinte, esta dando este erro aqui apenas no Windows XP, em casa, no Windows Vista e Windows 7 não ocorre este erro, gostaria de saber o pq.
O Erro:
java.net.BindException: Address already in use: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:209)
at principal.Enviar.EnviaBytes(Enviar.java:324)
at principal.Enviar.run(Enviar.java:108)
O meu metodo EnviarBytes da minha THREAD Enviar, segue abaixo:
public void EnviaBytes(byte[] bytes) throws IOException{
try {
ipServidor = InetAddress.getByName(ip);
} catch (UnknownHostException ex) {
ex.printStackTrace();
}
Socket s = null;
try {
s = new Socket(ipServidor, porta);
} catch (IOException ex) {
ex.printStackTrace();
}
OutputStream out = null;
try {
out = s.getOutputStream();
} catch (IOException ex) {
ex.printStackTrace();
}
//Enviando os bytes
out.write(bytes);
out.flush();
s.close();
}
Ou seja, ele pega o arquivo, “picota” em varios pedaços de array de bytes, eu tenho uma thread Enviar, que faz um laço(While) que vai chamando este meotdo enviar bytes e vai enviando os bytes pro servidor.
No Windows 7 e vista não da este erro, apenas no XP.
Alguem tem alguma luz?
Forte Abraço!