У меня есть приложение C ++, которое получает данные о запасах и пересылает в другое приложение через сокет (действующий как сервер).
На самом деле функция WSASend
через несколько секунд возвращает код ошибки 10055, и я обнаружил, что это сообщение об ошибке
«Недоступно буферного пространства. Не удалось выполнить операцию с сокетом, поскольку в системе не было достаточно буферного пространства или из-за переполнения очереди».
Проблема возникает только тогда, когда я запускаю приложение в нерабочее время рынка, поскольку мы получаем данные за целый день (приблизительно 130 МБ) за несколько минут (я полагаю, это относительно много)
Я делаю это в качестве теста на устойчивость.
Я попытался увеличить буфер отправки SO_SNDBUF, используя функцию setsockopt
, но та же проблема все еще существует.
Как я могу решить эту проблему? это связано с буфером получателя?
Сведения об отправке:
Для каждого полного сообщения я вызываю метод send, который использует перекрывающиеся сокеты
EDIT:
Может кто-нибудь дать общие рекомендации по обработке высокочастотных данных в C ++?