Правильно, я думаю, так.
1. Выполнить опрос системы на предмет неиспользуемых портов в диапазоне пользовательских (49152—65535, кроме зарезервированных) портов. Выбрать из них необходимое количество портов и захватить их.
2. Сформировать некий сервис (например, HTTP-сервер) на некоем незарезервированном статически назначенном порте из диапазона назначаемых программных портов (4096-49151), к которому клиент может обратиться и получить список захваченных для работы сервиса портов.