小弟刚学C#,求传输文件的思路啊,,。

解决方案 »

  1.   

    windows socket编程的神器TransmitPackets不要浪费,在.net中的方法为Socket.SendPacketsAsync(SocketAsyncEventArgs e)。
    优点有这么几个:
    1、避免频繁的用户态与内核态转换;
    2、不会将文件数据载入应用程序内存;
    3、传输整个文件夹更加方便。
    使用方法:
    传输方:定义SendPacketsElement[]集合,传输每个文件时,先在该数组中加入一个文件定义的SendPacketsElement,比如文件长度,文件名;再在该数组中加入一个文件地址的SendPacketsElement;之后调用Socket.SendPacketsAsync(SocketAsyncEventArgs e)。
    接收方:先根据协议接收文件定义的SendPacketsElement,得到文件长度和文件名后,创建FileStream,开始接收文件,边接收边写入硬盘,直到累计接收长度等于文件长度时结束。
      

  2.   

    Socket.SendFile在传输单个文件时也可以起到和Socket.SendPacketsAsync一样的效果,但缺点是当采用异步传输时,没有传输完毕的回调方法。
      

  3.   

    http://wenku.baidu.com/view/6e73b950ad02de80d4d8403c.html
      

  4.   

    http://www.cnblogs.com/JimmyZhang/archive/2008/09/16/1291857.html
    这个博客很不错, 网络编程的四篇文章很是给力 ,通俗易懂