更新 似乎此问题与Indy的关系不像我想的那么紧密,而更多地是关于多线程的主题。我不会公开这个问题,因为我不是100%确信的。
我有一个正在运行的应用程序,正在使用Indy TCP客户端与通信伙伴交换ascii字符串。通信流程如下所示:
最近,我注意到在与wireshark纠缠之后,该通信中出现了一些问题,得到了以下图片:
超时后,发件人再次发送原始消息,因为收件人没有逻辑确认。
所以我的问题是:如果Wireshark告诉我底层的TCP机制已经完成了工作,那么Indy Client怎么可能没有可用数据?
问候,Attix
[已解决]雷米提供的提示是正确的。我在Connected
读取线程之外调用TCP客户端,这弄乱了输入缓冲区并导致了未出现的消息症状。
删除该(不必要的)检查可以解决此问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句