我有一个 C++ 应用程序,它接收股票数据并通过套接字(充当服务器)转发到另一个应用程序。
实际上,该WSASend
函数在几秒钟后返回错误代码 10055,我发现这是错误消息
“没有可用的缓冲区空间。无法对套接字执行操作,因为系统缺少足够的缓冲区空间或队列已满”。
仅当我在市场交易时间后运行应用程序时才会出现问题,因为我们在几分钟内收到全天数据(大约 130 MB)(我假设这相对较大)我这样做是为了进行稳健性测试。
我尝试使用setsockopt
函数增加发送缓冲区 SO_SNDBUF 但同样的问题仍然存在。我怎么解决这个问题?这与接收缓冲区有关吗?
发送详情:
对于每条完整的消息,我调用使用重叠套接字的发送方法
编辑:有人可以给出在 C++ 中处理高频数据的一般准则吗?