Циклы по сети C-класса излишне излишни. Я бы не использовал это, если бы не было крайней мерой. У вашего пользователя может быть сеть класса A (10.x.x.x, популярная на рабочих местах) или класс B, потому что ... ему так нравится; -)
Лучшим способом было бы использовать широковещательный адрес (или многоадресную рассылку, если вы предпочитаете, но это немного больше работы). Вы можете реализовать простой протокол обнаружения для своего приложения на основе дейтаграмм UDP. В этом случае ваш сервер прослушивает широковещательный порт, например, UDP 192.168.0.255:6666 (порт по вашему выбору), и отвечает на любое действие, отправляя IP: PORT, который он слушает, запрашивающей стороне.
Phone->Broadcast: "Is there anybody?"
Server1->Phone : "I am here. Talk to me at 192.168.0.123:6666"
Server2->Phone : "I am here. Talk to me at 192.168.0.124:6666"
Клиент может затем отобразить доступные серверы и спросить, к какому из них пользователь хочет подключиться, затем подключиться к TCP-порту, указанному в ответе (я предполагаю, что соединение клиент-сервер - это TCP, но это может быть что угодно, идея та же ).