Pessoal, To com um ‘probleminha’ na utilização de sockets.
Seguinte, eu quero forçar meu cliente e utiliza apenas uma porta de conexão com o servidor, para isso fixei a porta de uso do cliente na 2000, como no código abaixo.Porém há um problema, se eu executo o cliente várias vezes ele lança uma exeção com a mensagem: “Address already in use: connect.”
O socket está ficando ‘preso’ ? O que estou fazendo de errado ou não há oq fazer?
(...)
try{
InetAddress ia = InetAddress.getLocalHost();
Socket netSocket = new Socket();
netSocket = new Socket(host,port,ia,2000);
br = new BufferedReader(new InputStreamReader(netSocket.getInputStream()));
pw = new PrintWriter( new OutputStreamWriter(netSocket.getOutputStream()));
pw.println("Teste de Envio de mensagem de "+netSocket.getLocalAddress()+":"+netSocket.getLocalPort());
pw.flush();
closeAll();
}(...)
private void closeAll(){
try {
br.close();
pw.close();
netSocket.close();
}catch(...)
}
No servidor:
try {
ServerSocket ss = new ServerSocket(5555);
Socket connection = null;
while(true){
connection = ss.accept();
BufferedReader br = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
PrintWriter p = new PrintWriter(new OutputStreamWriter(connection.getOutputStream()));
System.out.println(br.readLine());
connection.close();
}
}

