Почему 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 в его числовом представлении.