Дано:
1. tcp сокет. Один.
2. Большой поток данных, явно выше чем возможности сети, из-за чего сетевой буффер постоянно забивается (т.е. другими словами, poll() по этому дескриптору очень часто не возвращает POLLOUT в revents)
Задача:
Отправить кусочек данных В ПЕРВУЮ ОЧЕРЕДЬ, минуя стандартную очередь в ядре.
MSG_OOB не работает:
1. Только 1 байт будет приоритетным
2. Принимающая сторона которая получает данные используя read() не получает этот байт
3. Принимающая сторона которая использует recv() должна ОТДЕЛЬНО этот байт вытягивать с помощью этого же флага
4. Принимающая сторона может быть различным софтом, который иногда не поллит POLLPRI
Что делать?
Похожие темы
- Форум poll() ? (2002)
- Форум Неустоичивая работа сокетов в O_NONBLOCK режиме (2004)
- Форум Вопросы по поводу MSG_OOB (2010)
- Форум Расскажите в деталях как пользоваться неблокирующими сокетами (2017)
- Форум передача списка процессов сервера клиенту (2015)
- Форум Приоритетная выборка данных (2015)
- Форум Реализация очередей и не только (2016)
- Форум Клиент-Сервер Socket linux (Музыкальный сервис) (2014)
- Форум Приоритетная очередь (2023)
- Форум Клиент-Сервер Socket linux (Система обмена сообщениями) (2014)