发送端用 filestream一段一段读入一个缓冲区,然后利用socket将一个文件分块发送出去。客户端同样接收到一块一块的文件。问题如下:因为文件是被分块发过来的。那么每次调用将数据冲缓冲取出并存入文件中。应该怎么写fs = new FileStream("c:\xx.txt",FileMode.Append, FileAccess.Write);
fs.Write(ReceiveFiles, 0, ReadSize);
fs.Flush();每次接收到文件块都用上面的代码是不是有问题?应该如何写,才能将每次接收到的文件块分批存入文件。最终是文件可以正常使用??谢谢,盼复

解决方案 »

  1.   

    怎么没人回答呀还有个问题。就是我想在读取文件后,如:filestream fs;fs.read(a,0,1000);再在a前面加上类似"xx|xx",请问,应该用什么将"xx|xx"转换成byte[]型,并与a结合。
      

  2.   

    上说的对 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();
      

  3.   

    楼上的朋友,您的回答,我不大明白。我的接收端是每接收一次数据就调用一次
    fs = new FileStream("c:\xx.txt",FileMode.Append, FileAccess.Write);
    fs.Write(ReceiveFiles, 0, ReadSize);
    fs.Flush();
    ,但是,我看你写的代码,意思是把数据全部接收完后,再一块一块地写入文件是吗?好像和我的意思不大一样。。还有,我在网上看到有人说,使用sokcet只能传输txt或图片,传送其他的文件必须使用tcp或udp类是吗?