Socket e ServerSocket - Verificando portas abertas

Olá pessoal!!

Criei uma aplicação simples de chat aqui no serviço usando Socket e ServerSocket, está funcionando belezinha, com Threads para conexão de vários clientes e tudo mais… porém, minha dúvida é a seguinte.

Gostaria que fosse exibida ao cliente uma lista com as “salas” abertas ao abrir sua aplicação. Supondo que dois computadores possam funcionar como servidores de “salas” (portas). E que cada um desses servidores deixassem disponíveis aleatoriamente uma dentre 3 portas para conexão dos clientes.

Ex.
IP servidor 1: 127.0.0.1
Portas que poderão ser liberadas para conexão: 6001, 6002 e 6003.
IP servidor 2: 127.0.0.2
Portas que poderão ser liberadas para conexão: 6001, 6002 e 6003.

Duvida 1 - Como faço para que o cliente faça uma “varredura” por essas portas verificando se estão disponíveis para conexão? Parecido com o bate-papo da uol!! rsrs

Duvida 2 - Nessa varredura, seria possível também verificar a quantidade de clientes já conectatos??

Valeu galera!!!

Abç…