C# 异步读取数据,有时候较慢原因?在线等急!!!

sping_me 2016-11-22 11:05:39
NetworkStream.BeginRead(state.data, 0, state.data.Length, ReadCallBack, state);
异步读取时,又少部分消息,读取数据执行到回调函数ReadCallBack较慢,可能存在原因是什么?求大神指点,state.data.Length
= 4096;在线等,急!!!有用立马给分!!!
...全文
385 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sping_me 2016-11-22
  • 打赏
  • 举报
回复
引用 5 楼 starfd 的回复:
NetworkStream 网络延迟,服务器响应慢,都可能啊
我服务端日志也打出来了,服务端确定消息已经发过了,5s内都还可以接受,感觉有些消息时间太长了超过10s了,会和NetworkStream与TCPClient设置有关吗?
sping_me 2016-11-22
  • 打赏
  • 举报
回复
引用 5 楼 starfd 的回复:
NetworkStream 网络延迟,服务器响应慢,都可能啊
我服务端日志也打出来了,服务端确定消息已经发过了,5s内都还可以接受,感觉有些消息时间太长了超过10s了,会和NetworkStream与TCPClient设置有关吗?
Forty2 2016-11-22
  • 打赏
  • 举报
回复
引用 楼主 u011393369 的回复:
NetworkStream.BeginRead(state.data, 0, state.data.Length, ReadCallBack, state); ...读取数据执行到回调函数ReadCallBack较慢,...
这是正常的。 当对方没有发送数据(也没有关闭连接),那么ReadCallBack将一直得不到执行。 如果对方发送慢,你ReadCallBack当然也会慢。
  • 打赏
  • 举报
回复
NetworkStream 网络延迟,服务器响应慢,都可能啊
sping_me 2016-11-22
  • 打赏
  • 举报
回复
//禁用延迟 TCPClient.NoDelay = true; //设置缓冲 m_TCPClient.ReceiveBufferSize = 默认值
sping_me 2016-11-22
  • 打赏
  • 举报
回复
//禁用延迟 TCPClient.NoDelay = true; //设置缓冲 m_TCPClient.ReceiveBufferSize = 默认值
sping_me 2016-11-22
  • 打赏
  • 举报
回复
我在BeginRead函数之前与回调函数都加了日志的 11:14:52 AM : 读取之前 >>> : 11_14_52 11:14:56 AM : 读取回调 >>> : 11_14_56 相差了4秒,还有10秒的!
  • 打赏
  • 举报
回复
你是怎么判断的“较慢”?具体慢几秒?拿出测试调试来说明一下这个数值是怎么得到的。

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧