В настоящее время я использую поток для асинхронного вызова соединений и отправки. Все это работает нормально, но теперь я хочу сделать асинхронным получение. Как получить данные без приостановки всей очереди во время ожидания данных? Единственное решение, о котором я могу думать сейчас, - это второй поток.Как обрабатывать получение асинхронного сокета в C++?
3
A
ответ
6
Посмотрите на non-blocking sockets и избирательных API, как select(2)
/poll(2)
/epoll(4)
/kqueue(2)
.
В частности, на C++, посмотрите на boost::asio
.
+0
Неблокирующих сокетов должно быть достаточно, если вы обрабатываете случай, когда recv() не считывает никаких данных (что очень просто). Использование select() или что-то подобное имеет свои преимущества, но также и недостатки. Вам решать, что лучше подходит вашим потребностям. – PeterK
1
В зависимости от того, что вы делаете, может быть ответом неблокирующий ввод-вывод с select.
Смежные вопросы
- 1. Эффективность асинхронного неблокирующего серверного сокета
- 2. Пример сокета асинхронного сервера MSDN
- 3. Отмена операции асинхронного сокета
- 4. Автоматизированные тесты асинхронного сокета
- 5. соединение асинхронного сокета в php
- 6. Deserializing несколько объектов из асинхронного сокета
- 7. Как создать SslStream для неблокирующего асинхронного сокета
- 8. Как узнать, когда заканчивается чтение асинхронного сокета?
- 9. Состояние гонки в соединении асинхронного/ждущего сокета
- 10. Как обрабатывать несколько клиентов сокета через сервер в c linux
- 11. Какое правильное отставание для асинхронного сокета сервера?
- 12. Как обрабатывать каждый ответ сокета в SailsJS?
- 13. C# Сервер асинхронного сокета не получает ответ от Java-клиента.
- 14. Автоматическое повторное подключение клиента асинхронного сокета
- 15. C# получение результатов от асинхронного вызова
- 16. Как определить конец потока на сервере асинхронного сокета
- 17. Как обрабатывать исключения внутри асинхронного блока java
- 18. Оптимальное чтение данных из асинхронного сокета
- 19. Файл поврежден из асинхронного tcp-сокета
- 20. Выполнение асинхронного сокета на фоновом потоке
- 21. TCP-клиент Обратный вызов асинхронного сокета
- 22. Удаление asio сокета после совершения асинхронного вызова
- 23. Передача содержимого вне асинхронного серверного сокета
- 24. Частичное получение пакетов из сокета C++
- 25. Наиболее подходящая модель асинхронного сокета для клиента мгновенного обмена сообщениями?
- 26. Получение ошибок сокета в Java
- 27. Получение python из сокета
- 28. Получение протокола сокета в winsock
- 29. golang сокета TCP - обрабатывать несколько сообщений
- 30. Получение ответа от асинхронного HttpWebRequest
рамки? увеличение? Qt? необработанный API Windows? линукс? Скажите еще, пожалуйста. –