Проверка открытых портов в C / C ++ - PullRequest
3 голосов
/ 17 июня 2010

Были другие вопросы относительно предмета проверки доступности и доступности портов сокетов.

Как можно было бы искать порт для прослушиванияна динамически в C / C ++?

Основной процесс, который я пытаюсь выполнить, таков:

  1. Клиент запускается
  2. Клиент находит открытый порт XYZ и прослушивает его.
  3. Клиент передает основное сообщение «Я здесь» через UDP-дейтаграммы на сервер с информацией о порте.
  4. Клиент и сервер могут связываться.

Я знаю, что вы можете выполнить что-то вроде этогоесли вы выберете произвольный номер порта и попробуйте bind ing для него.Если это не удалось, увеличьте число и повторите попытку, пока не получите успешное «связывание».

Есть ли более элегантный способ сделать это?Кажется, что-то вроде хаки.

1 Ответ

12 голосов
/ 17 июня 2010

Если вы связываетесь с портом 0, случайный порт будет выделен.Затем с помощью getsockname () можно узнать фактический используемый порт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...