приветсвую вас еще раз =)
у меня вопрос:
как можно создать очередь пакетов сообщений так, чтоб я смог обрабатывать каждый пакет отдельно?
обработка очереди сообщений
Модератор: Модераторы разделов
-
BlackStar
- Сообщения: 1338
- Статус: We are all Kosh
- ОС: Fedora 10
-
Reboot
- Сообщения: 321
- Статус: Красен глаз -- темна душа
Re: обработка очереди сообщений
есть мнение, что это должно быть в этой теме Решено: connect ()
Мой компьютер зовут Марвин
-
Protocol
- Сообщения: 34
- ОС: Linux
Re: обработка очереди сообщений
просто я слышал, что чтоб можно было обрабатывать каждый пакет в отдельности (для фильтрации, допустим) то необходимо какая-то очередь для этого, по-особенному созданная.
не, это совсем другая тема.
не, это совсем другая тема.
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
-
RasenHerz
- Сообщения: 1341
- ОС: Arch Linux amd64
Re: обработка очереди сообщений
Насколько я знаю ядро не имеет механизмов экспорта очередей пакетов в userspace. Обычному разработчику лишь предложено API для работы IP-фильтром и сырые сокеты (думаю особым образом извратившись можно организовать свою собственную очередь, но она будет далека от той что существует в ядре).
-
Protocol
- Сообщения: 34
- ОС: Linux
Re: обработка очереди сообщений
но можно использовать функции recvfrom для обработки сообщений из очереди?
-
RasenHerz
- Сообщения: 1341
- ОС: Arch Linux amd64
Re: обработка очереди сообщений
По-моему, вы не совсем понимаете что такое очереди пакетов. Почитайте об этом здесь. Еще раз повторюсь, userspace не работает напрямую с пакетами.
-
кодировщик
- Сообщения: 974
- Статус: зарёган в пятницу 13
- ОС: Linux
Re: обработка очереди сообщений
ssize_t bytes_read;
char data[4096];
............
sd = socket(AF_INET, SOCK_PACKET, htons(ETH_P_ALL));
.....................................
do
{
bytes_read = recvfrom(sd, data, sizeof(data), 0, 0, 0);
if ( bytes_read > 0 )
Функция обработки пакетов(data, bytes_read); //выбираешь, обрабатываешь пакеты любого типа
}
while ( bytes_read > 0 );
-
Protocol
- Сообщения: 34
- ОС: Linux
Re: обработка очереди сообщений
дак я понимаю что такое очередь, просто я не понимаю как ее образует линух и что она представляет собой в ядре.
если смотреть на вопрос системно, то вот: http://bse.sci-lib.com/article085995.html