byte[] write = new byte[1024];
int bytes=0;
//循环读取,从网络流中读取数据到缓冲区
while(true)
{
bytes=clientSocket.Receive(write);
// 将数据写入文件
fileWriter.Write(write,0,write.Length);
if(bytes<1024)
break;
}
为什么不会调出循环?
int bytes=0;
//循环读取,从网络流中读取数据到缓冲区
while(true)
{
bytes=clientSocket.Receive(write);
// 将数据写入文件
fileWriter.Write(write,0,write.Length);
if(bytes<1024)
break;
}
为什么不会调出循环?
int bytes;
byte[] rByteArray=new byte[1024];
// 循环读出文件数据并写入网络流
while(true)
{
bytes = inputStream.Read(rByteArray,0,rByteArray.Length);
// 把缓冲区的数据写入网络流
Strm.Write(rByteArray,0,rByteArray.Length);
if(bytes<1024)
break;
}
Strm.Flush();
this.lstContent.Items.Add("发送文件中");
string message1=" ";
Byte[] endbytes=System.Text.Encoding.Default.GetBytes(message1.ToCharArray());
Strm.Write(endbytes,0,endbytes.Length);
//一定要再发个其它什么信息,接收端才会跳出循环
inputStream.Close();
谢谢您的光临
Strm.Write(rByteArray,0,rByteArray.Length);
应该是:
Strm.Write(rByteArray,0,bytes);其它的,没看出原因。
在线等着呢
发错了
Strm.Write(rByteArray,0,bytes);不管用
int bytes=0;
//循环读取,从网络流中读取数据到缓冲区
while(true)
{
bytes=clientSocket.Receive(write);
// 将数据写入文件
fileWriter.Write(write,0,write.Length);
if(bytes<1024)
break;
}
为什么不会调出循环?
发送端
int bytes;
byte[] rByteArray=new byte[1024];
// 循环读出文件数据并写入网络流
while(true)
{
bytes = inputStream.Read(rByteArray,0,rByteArray.Length);
// 把缓冲区的数据写入网络流
Strm.Write(rByteArray,0,rByteArray.Length);
if(bytes<1024)
break;
}
Strm.Flush();
this.lstContent.Items.Add("发送文件中");
string message1=" ";
Byte[] endbytes=System.Text.Encoding.Default.GetBytes(message1.ToCharArray());
Strm.Write(endbytes,0,endbytes.Length);
//一定要再发个其它什么信息,接收端才会跳出循环
inputStream.Close();
说明:
添加这个段
string message1=" ";
Byte[] endbytes=System.Text.Encoding.Default.GetBytes(message1.ToCharArray());
Strm.Write(endbytes,0,endbytes.Length);
后:
发送含有record字符串内容的文本或xml文件
接收到的文件中结果是
record
ecord
但传送一般的doc文件内容不会多不会少
_______________________________________我也知道不管用,我说这个不是为了解决你的问题,只是明显是个逻辑错误,假如你只收到100个字节,你写入了1024个字节,那么后面的那么多字节都是上次接收余下来的,肯定有问题吧。
Strm.Write(rByteArray,0,rByteArray.Length);应该如下
Strm.Write(rByteArray,0,bytes );
FileStream inputStream=new FileStream(fi.ToString(),FileMode.OpenOrCreate,FileAccess.ReadWrite);
Strm.Write(rByteArray,0,rByteArray.Length);
应该是:
Strm.Write(rByteArray,0,bytes);其它的,没看出原因。
_______________________________________________________________________Knight94(愚翁) ( ) 信誉:110 2006-8-18 10:49:09 得分: 30
在发送端,你这句错了
Strm.Write(rByteArray,0,rByteArray.Length);应该如下
Strm.Write(rByteArray,0,bytes );
________________________________________________________________________??????????????????????????????