• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
雨@哲
博客园    首页    新随笔    联系   管理    订阅  订阅

socket 发送图片

引言



自 .NET Framework 2.0 版本开始新增了一个SendFile方法,此方法可以方便的发送指定路径的文件,今天给大家演示一个利用Socket.SendFile方法发送图片的例子,希望能给刚刚接触Socket编程的朋友一些帮助,效果图: 
 

 

SendFile详细参数



Socket.SendFile 方法 (String, Byte[], Byte[], TransmitFileOptions)
使用指定的 TransmitFileOptions 值,将文件 fileName 和数据缓冲区发送到连接的 Socket 对象。
注意是连接的Socket对象,所以只适用于TCP协议的Socket连接。

参数
fileName

一个String,它包含要发送的文件的路径和名称。此参数可以为 空引用(在 Visual Basic 中为 Nothing)。

preBuffer

一个 Byte 数组,包含发送文件前要发送的数据。此参数可以为 空引用(在 Visual Basic 中为 Nothing)。

postBuffer

一个 Byte 数组,包含发送文件后要发送的数据。此参数可以为 空引用(在 Visual Basic 中为 Nothing)。

flags

一个或多个 TransmitFileOptions 值。

 

详细请参考:Socket.SendFile

 

Send和Receive
 

 
 SendFile
show source

  ReceiveFile

show source

  

最后


 
SendFile方法虽然用起来非常的方便,但也有自身的优缺点
优点:发送文件时自动创建线程,即使发送大文件时也不会影响主线程运行,不用担心发送过程的状态,文件发送完成时会自动返回。
缺点:只能发送指定路径的文件,发送过程中得不到已发送的流量,所以不能观察其发送的状态。
大家可以根据自己所设计的系统环境采用SendFile方法,虽然SendFile的缺点让我们情难以堪,但是发送一些小文件还是很方便的,比如图片,文本文档等等。
 
附


 
源码下载
posted @ 2011-11-18 23:20  雨@哲  阅读(1139)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3