首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

帮忙解决下循环为什么跳不出来

2012-04-14 
帮忙解决下循环为什么跳不出来!在线等客户端文件已发送完毕,服务器端也接受完毕,但为什么服务器端while{}

帮忙解决下循环为什么跳不出来!在线等
客户端文件已发送完毕,服务器端也接受完毕,但为什么服务器端while{}后边的语句不执行?

代码如下:
private void Listen()
  {
  //创建一个tcpListener对象,此对象主要是对给定端口进行侦听
  tcpListener = new TcpListener(13000);
  //开始侦听
  tcpListener.Start();
  //返回可以用以处理连接的Socket实例
  socketForClient = tcpListener.AcceptSocket();
  byte[] bb = new byte[1024];
  try
  {
  //如果返回值是"true",则产生的套节字已经接受来自远方的连接请求
  if (socketForClient.Connected)
  {
  AddList("已经和客户端成功连接!");
  while (true)
  {
  //创建networkStream对象通过网络套节字来接受和发送数据

  int i = 0;
  networkStream = new NetworkStream(socketForClient);
  streamWriter = new StreamWriter(networkStream);
   
  FileStream fs = new FileStream("f:\\a\\"+i+"a.jpg" , FileMode.OpenOrCreate, FileAccess.Write);
   
  int tt = 0;
  while ((tt = networkStream.Read(bb, 0, 1024)) != 0)
  {
  fs.Write(bb, 0, tt);
  fs.Flush();
  }
  fs.Close();
  i++;
  try
  {  
  AddList("往客户端反馈信息: ");
  //往当前的数据流中写入一行字符串
  streamWriter.WriteLine("传送完毕!");
  //刷新当前数据流中的数据
  streamWriter.Flush();  
   
  }
  catch
  {
 
  }
   
  }
  }
  }
  catch (Exception ey)
  {
  MessageBox.Show(ey.ToString());
  }
  }

[解决办法]
不附合条件肯定不执行了,你那个bb数组里好像没东西吧................?
[解决办法]
while (true)
我看不太懂,这样的循环会结束吗?
[解决办法]
try 
{
AddList("往客户端反馈信息: "); 
//往当前的数据流中写入一行字符串 
streamWriter.WriteLine("传送完毕!"); 
//刷新当前数据流中的数据 
streamWriter.Flush();


catch 

  




 catch 里面放点东西看看有没有运行到那里去.

因为这里用到了try所以有错误也不会提示..的.
[解决办法]
你这当然一直死循环了...WHILE里没有当条件满足就跳出循环的语句,程序当然一直在循环了
加条以下的语句就不会出现这情况了

C# code
if(满足什么条件就跳出循环){   break;}
[解决办法]
顶一下!
[解决办法]
LZ什么问题吗?
”循环为什么跳不出来“指的是哪个循环?
”服务器端while{}后边的语句不执行“又是指什么呀?
[解决办法]
那就是networkStream.Read函数一直没有返回咯,是不是流里面一直都有数据,我好像以前也遇到过,不记得具体是怎么回事了
[解决办法]
如果这样的话,还有什么可说的,只有networkStream.Read函数的返回值一直都不等于0;还有一个问题就是,你代码是死循环,不是通过关闭程序来退出循环吧?
[解决办法]
1、、
tcpListener.Start(); 
这个打开了,你在哪关闭的???????

2、另外看不懂:
while(true)
{
..........
}

你想让它怎么执行???????
[解决办法]
你这个是listen啊
退出干什么啊,关闭吗
再说了,你没有给出退出条件怎么可能退出呢,除非关闭程序

热点排行