2012-01-05 3 views
2

IPC может выполняться через сокеты TCP/IP. Какие диапазоны портов следует использовать для локального IPC между программами под окнами?
Имеет ли значение, какую версию Windows я использую?
В случае, если я хотел бы быть кросс-платформенной совместимостью, не отличается ли он от Linux?
Неважно, на каком языке я пишу?
Имеет ли значение, является ли IPC локальным или нет?Диапазоны портов IPC

+0

[related] (http://stackoverflow.com/questions/4501518/when-writting-a-networked-application-how-do-i-choose-a-good-port-number), еще не ответивший – Jonathan

+0

It важнее всего * что * IPC вы собираетесь использовать. –

ответ

3

В принципе, если ваша программа будет широко использоваться, вы должны получить номер порта, присвоенный вам IANA согласно RFC6335. Если вы не имеете права на получение задания, ваша программа должна выбрать неиспользуемый порт в диапазоне 49152-65535 во время выполнения и передать этот номер порта другим процессам другими способами.

На практике вы обычно можете уйти с использованием редко используемого порта в диапазоне 1024-49151, хотя вы должны разрешить возможность использования другой программы. Обычно это делается, разрешая пользователю настраивать использование другого порта, например, вы можете использовать параметр реестра.

Назначенные номера портов могут быть просмотрены at IANA. Этот список может быть полезен для предотвращения использования портов, которые, вероятно, будут использоваться.

Для записи в Windows обычно проще использовать какой-либо другой метод IPC, такой как именованные каналы.

1

Вы должны избегать использования портов с 0 по 1023, если ваше программное обеспечение предназначено для , могут использоваться непривилегированными (не root) пользователями под Linux или другими Unix-подобными платформами.

Используемый язык программирования или версия ОС (в пределах одного семейства, например Windows или Linux) не должны ограничивать ваш выбор номеров портов, используемых для IPC.