Почему ZeroMQ C# PUB/SUB выдает предупреждение EINVAL по протоколу pgm?

Я совершенно новичок в ZeroMQ, мое приложение Window C# собирается публиковать данные через (tcp://localhost:5563), если я изменю это на (pgm://localhost;233.255.0.1:5555), выдает ошибку:

EINVAL (22): неверный аргумент

Предупреждение: Интерфейс {xxx-xxx-xxx..-xxx} сообщает как устройство с обратной связью.

Кто-нибудь может дать несколько советов?

1 ответ

Использование epgm://<IPv4_ADDR>;<mcast_ADDR>:<port#> рекомендуется в документации по ZeroMQ API.

Замечания по документации ZeroMQ API очень важны:

Подключение розетки

При соединении сокета с одноранговым адресом с использованием zmq_connect() с транспортом pgm или epgm конечная точка должна интерпретироваться как интерфейс, за которым следует точка с запятой, за которой следует адрес многоадресной рассылки, за которым следует двоеточие и номер порта.

Интерфейс может быть указан одним из следующих:

- Имя интерфейса в соответствии с операционной системой.
- Основной IPv4-адрес, назначенный интерфейсу, в его числовом представлении.


Имена интерфейсов никак не стандартизированы и должны рассматриваться как произвольные и зависящие от платформы. На платформах Win32 короткие имена интерфейсов отсутствуют, поэтому для указания интерфейса можно использовать только основной IPv4-адрес. Часть интерфейса может быть опущена, в этом случае будет выбрана часть по умолчанию.

Многоадресный адрес указывается многоадресным адресом IPv4 в его числовом представлении.

Другие вопросы по тегам