В некоторых случаях я хотел бы явно отбрасывать пакеты, ожидающие в сокете, с минимальными издержками.Кажется, что нет явного системного вызова «drop udp buffer», но, может быть, я ошибаюсь?
Следующим лучшим способом будет, вероятно, recv
пакет во временный буфер и просто отбросить его.Кажется, я не могу получить 0 байтов, так как человек говорит о recv
: The return value will be 0 when the peer has performed an orderly shutdown.
Так что в данном случае это минимум 1.
Есть ли другой способ справиться с этим?
На всякий случай - это не преждевременная оптимизация.Единственное, что делает этот сервер, это пересылка / отправка UDP-пакетов особым образом - хотя recv
с len=1
меня не убьет, я бы просто отбросил всю очередь за один раз с какой-то более конкретной функцией(надеюсь, понижение задержки).