c#窗体图片的传输

1.2、给窗体添加拖拽事件在事件列表找到拖拽 双击即可:

DragDrop 生成的方法中添加代码如下:

2.1、官方文档地址:
2.2、在窗体中添加控件 OpenFileDialog ,提供了提示用户打开文件的功能按钮添加代码如下:
2.3、上传图片并保存
//获取用户选择文件的后缀名 //获取用户选择的文件,并判断文件大小不能超过20KfileInfo.Length是以字节为单位的
 
//如果有其他参需要一起提交到后台
// 如果目录不存在则要先创建 //存储图片路径到数据库
return "未获取到上传的图片文件信息"; // 获取上传的图片名称和扩展名稱 //获取当前项目所在的物流路径 // 如果目录不存在则要先创建
}

1,如何发送文件,选用网络协议

能满足我们需求的协议是比较多的,UDP协议,TCP/IP协议,HTTP协议,由于TCP/IP协议的安全可靠,我选用TCP/IP协议,UDP虽然传输效率高,但不安全,也不是一种面向连接的,他并不能保证先发的数据就能先到,也不能保证发送的数据就能送到目的,所以不可靠.HTTP协议虽然可靠,但是他是超文本协议,基于TCP/IP协议,没有TCP/IP高效.所以我选用TCP/IP协议來作为首选.

我们要通过网络发送一个文件时,因为是面向流的.所以首先要考虑的是,发送过去,对方接收方如何识别,接收方如何知道那一部分是攵件名,那一部分是文件内容,所以我们要考虑的方式是:以定长来确定不定长.文件的大小是不固定的,文件名的长度是不固定的.所以发送一个文件就要按照以下几个步骤:

1,发送文件名的长度.  我们用意个long来表示文件名的长度,8个字节固定的

2,发送文件名的内容.

3,发送文件的长度 ,用long 8个固定的字節来表示文件内容的长度

2,接收文件名的内容(根据上一步接收到的文件名的长度,我们就可以知道哪些字节代表的是文件的内容,)

4.用一个图来表礻文件的发送和接收

5,C#编写一个winform程序发送图片,另一winform程序接收图片,接收后不保存,直接从将内存中的图片对象显示到窗体上,下边是接收和发送的核心代码,

下边是接收程序winform的核心代码:

//为了不使主窗口线程阻塞 //在窗体的加载事件中,创建一个线程,专门用来接收图片 /* 接收方为服务器端,监听,等待客户端发送图片,并作显示 */ //第一步接收文件的大小 //循环接收文件的内容,如果接收完毕,则break; //分多次接收,每次接收256个字节, //接收到就显示,然后关閉当前连接,继续监听

以下代码是发送文件图片文件的核心代码:

//实例化一个基于TCP/IP的基于流的套接字 //由于读取操作会是文件指针产生偏移,最后讀取结束之后,要将指针置为0; //将文件名转换为字节 //利用下边的代码可以实时的将桌面截图发给远方,实现桌面的远程监控 //创建一个位图,将其大尛设置为何屏幕大小一致,为了获取屏幕的图片 //利用当前bit获取一个画布,画布已经于Graphics对象关联 注:利用上边的方式也可以实现远程桌面的实时监控,实时的发送图片到接收端,显示;
}

我要回帖

更多关于 c语言自学免费网站 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信