Я работаю над пабом /суб -архитектурой со следующей настройкой: < /p>
приемник:
платформа: x86 Ubuntu 24.04 < /p>
Sender:
ARMV7 встроенное устройство с пользовательской OS на основе Ubunt .18
Конфигурация сборки: нет дополнительных флагов, за исключением того, что--with-pgm. < /P> Детали архитектуры: < /strong> < /p>
Издатели: 55 отдельных устройств отправителя, на каждом 5 -х пабе клиент работает в отдельных процессах
абонент: отдельный подвод на отдельном устройстве x86
Каждый экземпляр издателя отправляет 40 коротких сообщений между сообщениями между сообщениями. < / p>
Проблема: < /strong> < /p>
Некоторые сообщения не попадают в подводный хост. Проблема либо влияет на первое сообщение до 40 -го числа для каждого клиента, либо в другую сторону, последние несколько сообщений, похоже, пропали без вести. , хотя Wireshark подтверждает, что они прибывают? Существуют ли конкретные конфигурации или дополнительные шаги отладки, которые я должен рассмотреть для решения этой проблемы? Диагностика:
On the sender side, set ZMQ_RECOVERY_IVL to 10 seconds.
On the receiver side, increased ZMQ_RATE to 10000 kbits/s.
On the receiver side, increased ZMQ_RCVBUF to 1000 kbits.
< /code>
[b] журналы Wireshark < /strong> < /p>
Специальная проблема:
Большинство клиентов паба успешно завершили транзакцию. Два клиента не смогли этого сделать, первым был 192.168.50.49 на ID NR 3. Он потерял 34 из 40 сообщений. Номер 1-6 прибыл, оставшиеся сообщения не прибыли в петлю приемника. Второй сделал то же самое, но в этом случае прибыли последние 34 сообщения. Это был IP 192.168.50.67 ID NR 5. Что действительно интересно, так это то, что, хотя эти 2 клиента расположены на Sepaarte Hardwares и используют отдельные IP -адреса, их специфический PGM исходный порт [/b] < /em> то же самое. Я заметил, что это, кажется, происходит несколько раз. Если клиент не выполняет свою транзакцию, он, скорее всего, поделится исходным портом с другим клиентом. Хотя я не понимаю, почему это может быть проблемой для PGM. < /P>
file pcap < /p>
Если этот фильтр применяется к журналу, только интересные транзакции появится. < /p>
pgm.hdr.sport == 59456
< /code>
Пакеты выглядят следующим образом:
discovery < /p>
[b] Клиентский код [/b]
//header
class Client : public RunIf
{
public:
Client(const std::string& msg, const char* pgmIp, const char* ip);
~Client();
void run() final;
private:
std::string msg;
std::unique_ptr context;
std::unique_ptr publisher;
bool initError = false;
const char* ip;
};
// cpp file
Client::Client(const std::string& msg, const char* pgmIp, const char* ip)
: RunIf(pgmIp)
, msg(msg)
, context(nullptr, zmq_ctx_term)
, publisher(nullptr, zmq_close)
, ip(ip)
{
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79375339/missing-messages-with-pgm-in-pub-sub-architecture-using-zmq-4-3-6[/url]
Я работаю над пабом /суб -архитектурой со следующей настройкой: < /p> приемник: платформа: x86 Ubuntu 24.04 < /p> Sender: ARMV7 встроенное устройство с пользовательской OS на основе Ubunt .18 Конфигурация сборки: нет дополнительных флагов, за исключением того, что--with-pgm. < /P> [b] Детали архитектуры: < /strong> < /p> Издатели: 55 отдельных устройств отправителя, на каждом 5 -х пабе клиент работает в отдельных процессах абонент: отдельный подвод на отдельном устройстве x86 Каждый экземпляр издателя отправляет 40 коротких сообщений между сообщениями между сообщениями. < / p> Проблема: < /strong> < /p> Некоторые сообщения не попадают в подводный хост. Проблема либо влияет на первое сообщение до 40 -го числа для каждого клиента, либо в другую сторону, последние несколько сообщений, похоже, пропали без вести. , хотя Wireshark подтверждает, что они прибывают? Существуют ли конкретные конфигурации или дополнительные шаги отладки, которые я должен рассмотреть для решения этой проблемы? Диагностика: [/b] [code]Used Wireshark on the SUB side: All messages appear to arrive successfully. No NAK messages are sent for the missing messages. [/code] [b] шаги, которые я попробовал [/b] (без успеха): [code]On the sender side, set ZMQ_RECOVERY_IVL to 10 seconds. On the receiver side, increased ZMQ_RATE to 10000 kbits/s. On the receiver side, increased ZMQ_RCVBUF to 1000 kbits. < /code> [b] журналы Wireshark < /strong> < /p> Специальная проблема: Большинство клиентов паба успешно завершили транзакцию. Два клиента не смогли этого сделать, первым был 192.168.50.49 на ID NR 3. Он потерял 34 из 40 сообщений. Номер 1-6 прибыл, оставшиеся сообщения не прибыли в петлю приемника. Второй сделал то же самое, но в этом случае прибыли последние 34 сообщения. Это был IP 192.168.50.67 ID NR 5. Что действительно интересно, так это то, что, хотя эти 2 клиента расположены на Sepaarte Hardwares и используют отдельные IP -адреса, их специфический PGM исходный порт [/b] < /em> то же самое. Я заметил, что это, кажется, происходит несколько раз. Если клиент не выполняет свою транзакцию, он, скорее всего, поделится исходным портом с другим клиентом. Хотя я не понимаю, почему это может быть проблемой для PGM. < /P> file pcap < /p> Если этот фильтр применяется к журналу, только интересные транзакции появится. < /p> pgm.hdr.sport == 59456 < /code> Пакеты выглядят следующим образом: discovery < /p> [b] Клиентский код [/b] //header class Client : public RunIf { public: Client(const std::string& msg, const char* pgmIp, const char* ip); ~Client(); void run() final;
Я работаю над пабом /суб -архитектурой со следующей настройкой:
приемник:
платформа: x86 Ubuntu 24.04
Sender:
ARMV7 встроенное устройство с пользовательской OS на основе Ubunt .18
Конфигурация сборки: нет дополнительных флагов, за исключением...
Я работаю над архитектурой PUB/SUB со следующей настройкой:
Платформа: x86 Ubuntu 24.04
Версия ZeroMQ: 4.3.6 (libzmq)
Версия PGM: 5.3.18
Конфигурация сборки: нет дополнительных флагов, кроме --with-pgm.
**
Архитектура Подробности:**
Издатели:...
Я работаю над архитектурой PUB/SUB со следующей настройкой:
Платформа: x86 Ubuntu 24.04
Версия ZeroMQ: 4.3.6 (libzmq)
Версия PGM: 5.3.18
Конфигурация сборки: нет дополнительных флагов, кроме --with-pgm.
Архитектура Подробности:
Издатели: 500–1000...
Я разрабатываю приложение Flutter Music и использую Hive для локального хранилища, которое требует Hive_generator и Build_runner для генерации кода. Я сталкиваюсь с очень постоянной проблемой, в которой build_runner не генерирует файлы...
Я пытаюсь реализовать класс C++ для чтения файла PGM. Я могу без проблем прочитать заголовок файла (магическое число, ширину, высоту и максимальное_значение), но когда я пытаюсь прочитать данные пикселей, я получаю ошибку, связанную с...