帮忙解决下循环为什么跳不出来!在线等
客户端文件已发送完毕,服务器端也接受完毕,但为什么服务器端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里没有当条件满足就跳出循环的语句,程序当然一直在循环了
加条以下的语句就不会出现这情况了