日期:2014-05-19  浏览次数:20814 次

询问SOCKET分块发送文件问题
发送端用   filestream一段一段读入一个缓冲区,然后利用socket将一个文件分块发送出去。客户端同样接收到一块一块的文件。问题如下:

因为文件是被分块发过来的。那么每次调用将数据冲缓冲取出并存入文件中。应该怎么写

fs   =   new   FileStream( "c:\xx.txt ",FileMode.Append,   FileAccess.Write);
fs.Write(ReceiveFiles,   0,   ReadSize);
fs.Flush();

每次接收到文件块都用上面的代码是不是有问题?应该如何写,才能将每次接收到的文件块分批存入文件。最终是文件可以正常使用??谢谢,盼复


------解决方案--------------------
上说的对

fs = new FileStream( "c:\xx.txt ",FileMode.Append, FileAccess.Write);
byte [] b=new (f.length)
int k=0;
while((k=fs.Read(b,0,b.Length))> 0)
{
string tmp=Encoding.UTF8.GetString(b,0,k);
MessageBox.show(tmp)
}
fs.Close();

------解决方案--------------------
关注中,碰到了相同的问题
------解决方案--------------------
不要这样处理,不然性能会很低而且会出问题!
你应该打开文件后先不要关闭,接收到数据后直接写入文件。当数据全部接收完闭后再关闭文件!