我想把A机的屏幕取下来然后传送到B机上,请问该如何实现??
解决方案 »
- recordset的cousortype和locktype怎么设
- FLEXGDID 怎么在超过50行时经常保存出错,请高手指点?
- 如 何 获 得 一 字 符 串 中 [ ] 中 的 内 容
- VB中需多次连接数据库,影响程序运行速度
- 实时错误:'7004',行集合不能作为标签?为何报这个错呢?
- 请问在VB中连接数据库需要引用什么组件!(用ADO访问数据库)
- 如何模拟ALT和B同时按下?谢谢
- vb中如何调用一个htm文件?
- 那有api函数的入门教程?
- 怎么不能运行select into?
- 用sql语句查询表,如何自动把Null值转换为0或指定值??
- 怎样使动态添加的控件加在指定PICTURE 容器控件里 而不是在窗体上
A机Open "c:\1.bmp" for binary access read as #1
发送二进制数组数据。
B机接收二进制数组数据,然后
Open "c:\1.bmp" for binary access write as #1
用SavePicture Picture1,"c:\1.bmp"
所以你的文件如果超过8K,就要分多次winsock的sendda方法来传送。
winsock传送文件一定要分批.
图片-〉大小压缩(用api图片映射)-〉灰度转换-〉传输-〉色彩复原
图像-〉分成图片-〉图片1-〉大小-〉灰度-〉传输-〉复原
图片2-〉大小-〉灰度-〉xor图片1->传输-〉复原-〉覆盖图片1
.....
以上是无损流模式传输过程
xor过程可变成求图片的mask,再进行有损压缩
Option Explicit
Public Const MAX_CHUNK = 4169 '每次传输的字节数
Dim DataChunk As StringOpen "c:\1.bmp" For Binary As #1
Do While Not EOF(1)
dataChunk = Input(MAX_CHUNK, #1)
SendData DataChunk
如果把一个文件分开传,那接收时怎么办?用一个变量来设定它的接受状态
发送方先给一个信号,告诉接受方:“我下面给你一个文件,文件名是XXX,一共有XXX个Block”接受方受到这个信号之后,就打开一个文件,准备写入,并且设状态变量为:"接受文件中",“已接受Block=0”“总Block=发送放给的信息”,同时告诉发送方:“ok,我准备好了!” 发送方受到这个信号后开始做一个循环,以一个block 一个block的发送文件。
接受方当状态变量为“接受文件中”时,在dataarrive事件用byte书组接受数据,将接受到的数据写入已经打开的文件。每写入一次,“已接受block=已接受block+1”直到“已接受block”=“总Block”,关闭文件,设置状态变量为“接受完毕”。