更新 似乎这个问题并没有像我想象的那样与Indy关系密切,而且更多关于多线程的话题。我会保持这个问题,因为我并不是100%相信。
我有一个工作应用程序,它使用Indy TCP客户端与通信伙伴交换ascii字符串。 通信流程如下所示:
最近我注意到那次沟通中有一个骗局,在与wireshark拼凑后,我得到了以下图片:
在一些超时后,发件人再次发送原始邮件,因为收件人没有逻辑确认。
所以我的问题是:如果wireshark告诉我底层的TCP机制完成了它们的工作,那么Indy Client有可能没有可用的数据吗?
此致 ATTIX
答案 0 :(得分:1)
<强> [解决] 强>
雷米提供的提示是正确的。
我在其读取线程之外调用了TCP客户端的Connected
,这搞乱了输入缓冲区并导致了不显示的消息症状。
删除(不必要的)检查解决了这个问题。