Просканировать доступные сервера в локальной сети C++
Мне нужно сделать программу которая в зависимости от выбора пользователя становится сервером либо клиентом на сокетах winsock2. Так вот, когда запущена одна программа в режиме сервера и еще одна например так же, и есть одна в режиме клиента, можно ли в клиентской части вывести список доступных серверов? Я не сильно разбираюсь в этой теме, но я так понимаю что нужно запустить эти сервера на разных портах, а затем на клиентской части перебрать все порты и к тем что можно подключится, вывести на экран. Я правильно думаю?