Установите исходный порт клиента в порт прослушивания с разъемами C - PullRequest
0 голосов
/ 27 июня 2018

В настоящее время я следую Руководству Beej по сетевому программированию , чтобы создать потоковый сервер и клиента, оба в одном приложении. По сути, это сервер, который также делает запросы на соединение (клиент). Я использую коды из client.c и server.c из этих примеров .

То, что я хочу сделать, это настроить порт источника клиента таким же, как порт прослушивания сервера, если это вообще возможно. Другими словами, прослушивайте порт 8888 и выполняйте исходящие соединения с помощью connect (), используя тот же порт 8888. В настоящее время по умолчанию каждый раз соединения используют разные случайные порты.

  1. Можно ли прослушивать и устанавливать соединения, используя один и тот же порт, и как это можно сделать.
  2. Я читал, что использование случайных портов каждый раз является обычной практикой, но у него могут заканчиваться порты или использоваться заблокированный порт. Насколько это правда?

Как мне обойти это, если я хотел бы установить фиксированный порт для всех соединений?

1 Ответ

0 голосов
/ 27 июня 2018

Можно установить порт источника для клиентского сокета, вызвав bind для соответствующего сокета. Это проблема, однако, если у вас уже есть серверный сокет, связанный с этим портом.

Точный номер порта, используемый для сокета клиента TCP, обычно не имеет значения. Если у вас нет особых требований, лучше позволить ОС выбрать доступный порт.

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