![]() |
1
2
我建议您使用MicrosoftNetworkMonitor或类似的工具来查看这些600ms的运行情况。NETWorkScript是一个网络软件——当查看它的行为时,总是考虑网络正在做什么。 |
![]() |
2
1
再次投票支持使用网络监控软件。网络监视器或WireShark都可以。确保记录networkstream.read调用在程序中开始和结束的时间,以便知道程序事件发生在记录的网络流量中的何处。 另外,我建议在调用Read方法之前等待NetworkStream.DataAvailable属性变为true,并记录变为true的时间。如果您的网络监视器显示数据在您的程序指示可以读取数据之前600毫秒到达,则您计算机上的其他东西可能会阻塞数据包-例如防病毒软件或防火墙。 附录2009/7/6美国东部夏令时下午3:12: 你发布的额外时间信息很有趣。如果数据可用,为什么要花这么长时间读取?我在我的开发机器上运行了你的代码,在等待dataavailable和read函数本身的结果都是0毫秒。您确定已安装最新的service Pack等吗?我正在用.NET2.0.50727运行VisualStudioProfessional2005。我也安装了.NET3.0和3.5,但我认为VS2005没有使用这些。您是否有一个新的操作系统安装(真实或虚拟机),没有额外的程序(甚至/特别是公司IT“需要”的程序)可以在上面试用?
|
![]() |
3
0
经过更多的研究,似乎唯一的加速方法是在读取第一个x字节后中断。延迟似乎是二读。如果我将缓冲区更改为8096字节(可能是每次发送应用程序的最大值),并在此处中断:
然后响应时间从600毫秒到大约80毫秒。这是我目前可以接受的解决方案。我可以从调用应用程序切换bTurboMode,并在这种情况下大大加快速度 |
![]() |
Ian Gleeson · c#通过tcp/ip处理的网络流 7 年前 |
|
suckerons · 在流对象C中使用GetStream方法# 7 年前 |
![]() |
Tomasz SzymaÅski · 使用网络流的数据传输问题 11 年前 |
![]() |
Pat Mustard · 无法从C中的.Net套接字正确读取数据# 11 年前 |