CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

线程与Socket问题,怪异

楼主n10z(小鱼)2005-06-03 21:28:16 在 .NET技术 / C# 提问

我写了一个线程,设置了它的启动函数如下  
  private   void   receive()  
  {  
  while   (Checked)  
  {  
  Receive.AppendText(i.ToString());    
  byte[]   str   =   new   byte[64];  
  nws   =   new   NetworkStream(sock);  
  nws.Read(str,0,str.Length);  
  Receive.AppendText(System.Text.Encoding.BigEndianUnicode.GetString(str)   +   "\r\n");  
  }  
  }  
  现在问题来了,当我设置它开始时,把Checked设为了true,这样Start()后,它就开始工作了,这个时候测试它的状态,是ThreadState.Running,但是文本框里只显示了一个0,好象是只循环了一遍一样,测试发现问题出在new.Read(str,0,str.Length);这一句上,只要把这句隐藏掉,程序就能显示好多0,也能正常终止了,谁能告诉我为什么加上new.Read(str,0,str.Length);后,它会变得好像不循环一样吗? 问题点数:50、回复次数:4Top

1 楼wangsaokui(无间道III(终极无间)C#MVP)回复于 2005-06-03 22:15:31 得分 0

NetworkStream.Read   方法  
  该方法将数据读入   buffer   参数并返回成功读取的字节数。如果没有可读取的数据,则   NetworkStream.Read   方法将一直阻塞到有数据可用为止。为避免阻塞,可使用   DataAvailable   属性来确定数据是否在传入网络缓冲区中排队等待读取。如果   DataAvailable   返回   true,Read   操作将立即完成。Read   操作将读取尽可能多的可用数据,直到达到由   size   参数所指定的字节数为止。如果远程主机关闭了连接并且已经接收到所有可用的数据,Read   方法将立即完成并返回零字节。  
   
  注意:Read   操作将读取尽可能多的可用数据,直到达到由   size   参数所指定的字节数为止  
  也就是说这个方法会一直阻塞到把64个字节数组str填充满为止,在此前是不会到下一语句的。  
   
  参见  
  ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemNetSocketsNetworkStreamClassReadTopic.htmTop

2 楼Cry_Out(东北)回复于 2005-06-03 22:40:10 得分 50

markTop

3 楼zlopen(MadeInChina)回复于 2005-06-03 22:52:38 得分 0

讲的不错,收藏Top

4 楼gccr(古城痴人)回复于 2005-06-04 00:07:19 得分 0

强。Top

相关问题

  • Socket与线程的问题
  • 多线程socket!!!
  • 关于Socket与线程的问题?
  • 请教关于SOCKET与线程问题
  • 请教SOCKET与线程问题
  • Socket多线程通信中重连与socket关闭的问题
  • 高分求教线程与Socket编程的问题!
  • 请教高手::Socket与多线程问题???
  • 一个Socket与线程的奇怪现象。
  • Socket的多线程问题

关键词

  • 数据
  • 字节数
  • 读取
  • 可用
  • 参数
  • networkstream
  • 方法
  • read
  • 操作
  • 问题

得分解答快速导航

  • 帖主:n10z
  • Cry_Out

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo