订阅MarketDataRequest
后,我可以暂时收到报价。但过了一个小时左右,价格流就下降了。经纪人支持对该问题的回应是:
我们断开了客户端,因为我们无法将更新推送到 客户端作为他们的TCP缓冲区已满 - 这可能是由于网络 丢弃或应用程序停止消耗他们的一方和他们的接收 缓冲区已满,并停止发送TCP确认。
如何在QuickFix中释放TCP缓冲区?
(使用QuickFix.NET v4.2)
答案 0 :(得分:1)
你误解了他们对你问题的分析。他们试图告诉您的是,他们发现TCP连接的结束是因为其(操作系统或网卡)缓冲区已满而无法接收其他数据。这意味着他们发送的速度比您收到的速度快。也可能是您的网络连接不稳定,或者被您的某个提供商限制(特别是如果您通过互联网或任何无法保证带宽的线路这样做)。
要自己分析问题,您可以使用Wireshark之类的工具来观察终端上的网络连接,并观察即将发生的数据包以及可能在TCP级别产生的负面影响。
也许你的代码太慢了,或者它可能在一段时间后被卡住并且无法处理新消息。你观察到了什么?