vb winsock 图片文件传输 代码

来源:百度知道 编辑:UC知道 时间:2024/05/27 01:24:09
从网上学了一条代码,以二进制方式传输字节数组:
tcpclient.SendData byteBuffer, vbByte + vbArray
但总报告参数错误,好像senddata没提供该第二个参数,所用mswinsck.ocx为98年第6版文件,网上也没查到有更新的mswinsck.ocx.
是不是在VB6中,还有更好的控件,能同时提供文本和图片文件的同时传输?
怎么不能插入图片?我有一个屏幕截图
还是显示一样的‘编译错误:错误的参数号或无效的属性赋值’
如果不加第二个参数,可以看见控件数组中有数据,加了就死了。

经验证,确实在发送时不能加第二个参数,直接写为:cli.senddata b就好了。

确实,每次接受只能接受8192字节,超过8k的图片传输都只有一个头,请教:

怎样实现多次接受? 从接受代码看起来,put语句是在原文件结尾之后接着写入数据的,但实际并没有。怎么回事?

cli发送文件端
Dim B() As Byte
Dim I As Long
Open "E:\a.bmp" For Binary As #1 '以二进制方式打开文件
I = LOF(#1) '获取文件长度’该大小以字节为单位
ReDim B(I - 1) '用于为动态数组变量重新分配存储空间。
Get #1, , B '将一个已打开的磁盘文件读入一个变量之中。
Close #1
cli.SendData B ', vbByte '发送整个文件,字节方式

ser 接收文件端 每次只能接收8000多字节,要分多次接收

Private Sub ser_DataArrival(ByVal bytesTotal As Long)
dim Bf() as byte
ser.GetData bf(), vbByte + vbArray ' 接收文件
Dim l As Long
Open App.Path & "\a.bmp" For Binary As #1 '写收接收的文件'在写文件这前要删除文件 kill App.Path & "\a.bmp"
l = LOF(#1) '获取已接收文件的长度
If l> 0 Then Seek 1, l+ 1 '如果没有接收就重写,已接收有,就接着文件写入 'seek 在 Open 语句打开的文件中指定当前的读/写位置。
Put #1, , bf'接着写入文件
Close #1
End Sub