LINUX.ORG.RU

RAW sockets, ping, QNX 4.25


0

0

Система QNX 4.25

Стоит задача:
бесконечно пинговать N компьютеров и собирать статистику о latency, % дошедших пакетов и.т.д.


Использую сырые сокеты.
Компьютеры пингую по очереди, то есть отправил пакет, дождался ответа - перешел к следуюещму.

Сокеты создаю следующим вызовом:
socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);

Возникает проблема, что после чтения пакета, он не исчезает из «очереди».
То есть при следующем чтении опять считывается этот же пакет.
После этого, считывается следующий пришедший ответ.

В чем может быть проблема?
Может ли быть проблема в реализации TCP-стека, поскольку она достаточно старая.

Если нужно, могу привести код отправки и чтения.

★★★★★

Ответ на: комментарий от frey

Я его не ставлю.
Читаю через recvfrom.

Я так понимаю, что MSG_PEEK метит сообщение как прочитанное?

x4DA ★★★★★
() автор топика

Если нужно, могу привести код отправки и чтения.

было бы неплохо

jtootf ★★★★★
()
Ответ на: комментарий от x4DA

Ничего не метит, просто данные остаются в очереди приема.

frey ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.