Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
订阅后MarketDataRequest,我可以在一段时间内收到报价。但一个小时左右后,价格流下降。经纪人支持对该问题的回应是:
MarketDataRequest
我们断开了客户端的连接,因为我们无法将更新推送到客户端,因为它们的 TCP 缓冲区已满 - 这可能是由于网络丢失或应用程序停止在他们这边消费,并且他们的接收缓冲区已满并停止发送 TCP 确认。
如何在 QuickFix 中释放 TCP 缓冲区?
(使用 QuickFix.NET v4.2)
你误解了他们对你问题的分析。他们试图告诉您的是,他们观察到您的 TCP 连接结束时无法接收其他数据,因为它的(操作系统或网卡)缓冲区已满。这意味着他们发送的速度比您接收的速度快。也可能是您的网络连接不稳定,或者被您的供应商之一限制(特别是如果您通过互联网或任何不保证带宽的线路执行此操作)。
要自己分析问题,您可以使用 Wireshark 之类的工具来观察您端的网络连接,并观察即将到来的数据包以及可能对 TCP 级别的不利影响。
也许您的代码太慢了,或者它在一段时间后被卡住并且无法处理新消息。你观察什么?