Du menar, att få en ServerSocket att binda första bästa port? Om porten inte går att binda kastas ett exception, fånga och prova på nästa port. Typ:
ServerSocket server;
int port = 1024;
boolean foundPort = false;
do {
try {
server = new ServerSocket(port);
foundPort = true;
} catch (IOException e){
port++;
}
} while (!foundPort);
\t Det är rekommenderat att du börjar leta port på 1024, portnummer lägre än så måste man vara root för att binda under *NIX.
Nä inte riktigt vad jag tänkte. Tänkte mer att det skulle gå att låta systemet ge mig första lediga port och att jag inte skulle behöva bry mig om exceptions.
Applikationen jag gör är ett chatsystem och jag behövde kunna binda till en port dynamiskt när en klient vill skapa en chattgrupp. Klienten har då redan en koppling mot servern där den får reda på vilken port den skall koppla upp sig mot om den vill vara med i chattgruppen.