【发布时间】:2014-05-15 17:54:30
【问题描述】:
我有一个连接到 Java Server 应用程序的 Delphi 应用程序(在 Delphi 7 中使用 indy 9 开发)。
通信在我们的暂存环境中运行良好。该问题发生在我们的生产环境中。
我做了一个 TCP 转储并能够跟踪所有数据包,所有数据都传递到运行 Delphi 应用程序的网络接口卡上。我们的 MTU 设置为默认值 1500
总数据包大小平均为 15kb。
当 delphi 应用程序读取缓冲区时,它只读取缓冲区上的前几个数据包,而不是完整的响应。
我能够在输出到从缓冲区读取的数据的文本文件时看到这一点。
升级到 indy 10 是不可能的,我们正在将所有应用程序迁移到 java 环境。
【问题讨论】:
-
什么代码实际上是在接收数据包并构造要处理的消息?
-
德尔福应用程序
-
@user3641972:这不是 EWit 所要求的。读取数据包并重建消息的应用程序代码是什么样的?请显示您使用 Indy 读取数据包的实际代码。另外,请显示实际的数据包本身,以验证您是否使用正确的代码来读取它们。
-
你忽略了提问。
-
没有看到你的实际代码,或者它试图实现的协议,我们只能推测为什么代码没有读取完整的数据包。我的猜测是你只是使用了错误的协议阅读代码,因此没有阅读你应该阅读的内容并使自己不同步。