В контре я так думаю читается список серверов, например, с какой-то определенной веб страницы по http (или по их собственному протоколу). И далее каждый из этих адресов проверяется на доступность непосредственно на самом компьютере игрока. По-другому никак. Иначе бы сервера бы ооочень долго искались (считайте нужно перебрать практически все ip от 0.0.0.1 до 255.255.255.255, да еще и по портам пройтись) А там первые сервера отображаются практически моментально. Этот список, я так думаю, пополняется каждый раз при создании нового сервера. А порты там могут быть какие угодно. В Hlds (так по-моему называется) можно в качестве порта любое число написать. Просто принято из обычно делать 27015, 27025, 27055, 27050 и т.д.
Ну а по локальной сети сервера наверное ищутся перебором каждого ip в подсети. Не так уж их там и много.
Конечно, может быть я и заблуждаюсь...