0

订阅后MarketDataRequest,我可以在一段时间内收到报价。但一个小时左右后,价格流下降。经纪人支持对该问题的回应是:

我们断开了客户端的连接,因为我们无法将更新推送到客户端,因为它们的 TCP 缓冲区已满 - 这可能是由于网络丢失或应用程序停止在他们这边消费,并且他们的接收缓冲区已满并停止发送 TCP 确认。

如何在 QuickFix 中释放 TCP 缓冲区?

(使用 QuickFix.NET v4.2)

4

1 回答 1

1

你误解了他们对你问题的分析。他们试图告诉您的是,他们观察到您的 TCP 连接结束时无法接收其他数据,因为它的(操作系统或网卡)缓冲区已满。这意味着他们发送的速度比您接收的速度快。也可能是您的网络连接不稳定,或者被您的供应商之一限制(特别是如果您通过互联网或任何不保证带宽的线路执行此操作)。

要自己分析问题,您可以使用 Wireshark 之类的工具来观察您端的网络连接,并观察即将到来的数据包以及可能对 TCP 级别的不利影响。

也许您的代码太慢了,或者它在一段时间后被卡住并且无法处理新消息。你观察什么?

于 2011-10-14T02:48:19.267 回答