未收到Indy TCP客户端数据

阿提克斯

更新 似乎此问题与Indy的关系不像我想的那么紧密,而更多地是关于多线程的主题。我不会公开这个问题,因为我不是100%确信的。

我有一个正在运行的应用程序,正在使用Indy TCP客户端与通信伙伴交换ascii字符串。通信流程如下所示:

  1. [Indy级]发件人发送字符串
  2. [TCP级别] Wireshark告知此数据包已传递给收件人
  3. [TCP级别]收件人发送TCP ACK确认此数据包
  4. [Indy级别]收件人的IOHandler.ReadLn方法返回数据
  5. [Indy级别]通过writeLn()将逻辑确认发送到原始发件人

最近,我注意到在与wireshark纠缠之后,该通信中出现了一些问题,得到了以下图片:

  1. [Indy级]发件人发送字符串
  2. [TCP级别] Wireshark告知此数据包已传递给收件人
  3. [TCP级别]收件人发送TCP ACK确认此数据包
  4. [Indy级别]收件人IOHandler.ReadLn方法不返回任何数据
  5. 无所事事,因为收件人没有可用的数据

超时后,发件人再次发送原始消息,因为收件人没有逻辑确认。

所以我的问题是:如果Wireshark告诉我底层的TCP机制已经完成了工作,那么Indy Client怎么可能没有可用数据?

问候,Attix

阿提克斯

[已解决]雷米提供的提示是正确的。我在Connected读取线程之外调用TCP客户端,这弄乱了输入缓冲区并导致了未出现的消息症状。

删除该(不必要的)检查可以解决此问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

客户端代码未收到发布的模型

来自分类Dev

Android客户端未收到服务器回复

来自分类Dev

使用事件处理程序收到的TCP客户端数据

来自分类Dev

GCM客户端未收到推送通知

来自分类Dev

简单的Netty Echo服务器/客户端未收到消息

来自分类Dev

重新排序连接后,StackExchange Redis .NET客户端未收到消息

来自分类Dev

Delphi-使用Indy检查客户端状态的简单TCP客户端/服务器

来自分类Dev

WCF服务客户端未收到流消息

来自分类Dev

ZeroMQ C ++客户端未收到

来自分类Dev

发生SessionSubscribeEvent时,踩踏客户端未收到消息/通知

来自分类Dev

服务器未收到客户端的socket.io消息

来自分类Dev

SignalR核心控制台客户端未收到通知

来自分类Dev

SignalR客户端未收到服务器消息

来自分类Dev

使用LAN交换机时客户端未收到UDP数据包

来自分类Dev

java http apache客户端未收到内容

来自分类Dev

Android客户端未收到服务器回复

来自分类Dev

WCF日志记录:客户端未收到响应

来自分类Dev

Delphi-使用Indy检查客户端状态的简单TCP客户端/服务器

来自分类Dev

ADM客户端未收到消息

来自分类Dev

在C#中检测客户端在TCP流上尚未接收到哪些数据

来自分类Dev

在服务器端客户端-服务器TCP上未收到单独的值

来自分类Dev

GCM android客户端未收到消息

来自分类Dev

TCP客户端未收到所有消息

来自分类Dev

C# TCP 客户端发送消息,但服务器未收到消息

来自分类Dev

使用 gen_tcp 的 Erlang 客户端-服务器示例未收到任何信息

来自分类Dev

NServiceBus 测试客户端未收到消息

来自分类Dev

未收到帖子数据

来自分类Dev

TCP 服务器未收到来自 TCP 客户端的消息 (Java)

来自分类Dev

客户端未收到 SFTP 文件传输

Related 相关文章

热门标签

归档