Рекомендации по выбору портов для вашего приложения - PullRequest
1 голос
/ 22 апреля 2011

У меня есть приложение, которое прослушивает порт для получения информации из сценариев на различных клиентских серверах.И мне нужно решить, какой порт я должен назначить приложению для привязки.Я могу посмотреть на этот список и узнать, какие порты не назначать, но я не совсем понимаю, как разработчики решают назначить порты для своего приложения.Являются ли они просто случайными или есть рекомендации по использованию определенных диапазонов портов для различных типов приложений?

Ответы [ 2 ]

4 голосов
/ 22 апреля 2011

Это в основном случайно. Выберите порт из одного из неназначенных / закрытых диапазонов в списке IANA и надейтесь на лучшее.

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

Если ваше приложение не может открыть порт для прослушивания, вам нужно убедиться, что кто-то увидит сообщение об ошибке. Это, вероятно, означает, что порт использует что-то другое, поэтому вам нужно разрешить конфликт. Точно так же, если клиенты подключаются к чему-либо в этом порту и получают «странные» выходные данные, убедитесь, что об ошибке сообщается подходящим способом.

И не кодируйте этот номер порта ни в одно из ваших приложений. Сделайте его настраиваемым с помощью параметра командной строки, файла конфигурации, переменной среды и т. Д. Если вам сложно изменить его, вам, безусловно, придется его изменить.

0 голосов
/ 22 апреля 2011

Ваша главная цель - получить тот, который обычно не используется, кроме того, чтобы выбрать то, что вам нравится.

Я иногда проявляю творческий подход и нахожу способ рассчитать содержательную, но неясную ссылку на приложение. Часто я преобразую символы в названии приложения в значения ascii, добавляю их и, в зависимости от значения, умножаем на другое число, чтобы получить его в диапазоне 1024-65000.

...