Re[5]: Многопоточное чтение по UDP
От: reversecode google
Дата: 16.05.18 19:25
Оценка:
изначально моя мысль была другая
если UDP используется для отправки какого то пакетированного потока
то
1) ловля пакетов recvfrom с разных потоков и закидывания в общую очередь (поток то отправлен один) — никак не ускорит
2) буфер для ловли может быть меньше чем самый большой кусок отправленного пакета,
и тогда мы ловим меньший кусок, выходим с recvfrom И ? другим потоком ловим оставшуюся часть ?

в ту же тему куда свернули вы, допустим максимальный размер который ловим в юзермоде 65536 байт, почти 65 кил
mbuf если я не ошибаюсь 4096 байт, 4 килобайта
пришедшая дейтаграмма в 65536 байт,
и случайно не хватившей места в буфере (начала кластеры аллочить по 4к и не хватило, ну да всяко бывает в ОС)
вряд ли будет мочиться уже на принятой стороне (лишь предполагаю)
вариантов два, 1) замочит отдав юзеру ошибку(коварная ОС)
2) не мочить а отдать юзеру столько сколько пришло (дружелюбная ОС)

лезть смотреть хотя бы в линукс о том как вообще ведут себя в таких ситуациях ОС, не хочу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.