Описание тега recvmmsg

2 ответа

Чтение нескольких UDP-сообщений без опроса

Я хотел бы использовать recvmmsg вызов для чтения нескольких UDP-сообщений из одного гнезда одновременно. Я читаю данные из одной многоадресной группы. Когда я читаю данные TCP, я обычно использую poll/select с неблокирующим сокетом (и тайм-аутом), …
21 авг '15 в 06:32
0 ответов

recvmmsg/recv/recv из блоков под высокой нагрузкой

У нас есть приложение на Centos 6, которое вызывает recvmmsg() на многоадресный адрес для чтения 1024 пакетов UDP одновременно. Когда мы запускаем несколько экземпляров этого приложения в одном и том же окне (все слушают один и тот же трафик), иногд…
19 июн '17 в 22:25
0 ответов

recvmmsg остается заблокированным на CTRL-C

Я использую recvmmsg читать из блокирующего сокета UDP из группы многоадресной рассылки. На страницах руководства этого API я заметил, что в сообщениях об ошибках не упоминается EINTR, поэтому похоже, что API не может перехватить, когда сигнал получ…
21 авг '15 в 06:46
1 ответ

MPI_Send застрять при выполнении с разными узлами

У меня есть очень простая программа MPI, в которой узел 0 отправляет символ на узел 1, но отправка и получение зависают, когда я использую две или более разных машин. Программа отлично работает, когда я использую несколько процессов только на одной …
27 ноя '16 в 12:21
0 ответов

Процесс зависает при вызове recvmsg сокета при получении полного mmapped блока памяти

У меня есть серверный процесс (программа C), который выполняет mmap для физической памяти размером около 70 МБ, и когда я отправляю весь этот блок памяти через сокет клиентскому процессу, мой API отправки сокета возвращает успех, но клиент продолжае…
06 дек '18 в 05:57
3 ответа

Как получить размер буфера msg_control для recvmsg?

При использовании recvmsg я использую MSG_TRUNC а также MSG_PEEK вот так: msgLen = recvmsg(fd, &hdr, MSG_PEEK | MSG_TRUNC) это дает мне размер буфера, чтобы выделить для следующего сообщения мой вопрос, как я могу получить размер буфера, который…
19 фев '18 в 08:17
1 ответ

Как использовать системный вызов recvmmsg в Ассемблере?

Немного прочитав и увидев системные вызовы на сокетах, я обнаружил, что есть больше способов получать данные от клиента, такие системные вызовы, как: recvfrom, recvmsg а также recvmmsg. Я использовал readдо сих пор это работает для меня, но я заинте…
16 апр '21 в 06:06
1 ответ

Сокеты Linux C - recvmsg - получение источника ifindex

Я открываю сокет RAW в Linux и читаю все сообщения. recvmsg(mysock, &msg, 0); Я просматриваю все cmsg в этом буфере msg и получаю только один. for (c = CMSG_FIRSTHDR(&msg); c; c = CMSG_NXTHDR(&msg, c)) { Как я могу извлечь ifindex, по ко…
31 дек '20 в 07:24