C# network stream

今天碰到一个问题。运行的时候Server和Client端可以正常通讯,但是调试的时候去在Stream.Read()那里卡死。看Client端的代码,发现有很
多的thread.Sleep()操作。于是把Thread.Sheep()中的参数值调大了些,向networkStream中写数据不像过去那么快,结果调试就p
ass了。百思不得其解,瑞军老大说:“StreamRead是不是同一个?”就这一句话解决了JAME(j2me
自动化测试框架)多个月来的稳定问题。原因在于用同一个NetworkStream New出多个StreamReader。一旦有一个StreamReader实例
调用的一次Read()函数。那么它将把当前缓存区中的内容全部都拿到自己的私有缓存区中。用微软的refactor工具看的源码 :)
,那么另外的StreamReader实例就不可能再得到缓存区的内存。其结果就是在Read()处挂死。

  • 本文作者: 帐前卒
  • 本文链接: http://chillyc.info/2007/1932096/
  • 版权声明: 本博客所有文章除特别声明外,只能复制超链接地址,且必须注明出处!