求教,怎样让该段代码可以传输BMP图片

idhgd 2007-07-19 03:58:14
这是我看到的一个程序里的部分代码,用来传送文本文件没问题,可是传送别的就不行了,谁能给改改,谢谢
Public Sub SendFile(FileName As String, WinS As Winsock)

Dim FreeF As Integer
Dim LenFile As Long
Dim nCnt As Long
Dim LocData As String
Dim LoopTimes As Long
Dim i As Long

FreeF = FreeFile

Open FileName For Binary As #99

nCnt = 1

LenFile = LOF(99)

WinS.SendData "|FILESIZE|" & LenFile
DoEvents

Sleep (400)


Do Until nCnt >= (LenFile)

LocData = Space$(1024) 'Set size of chunks


Get #99, nCnt, LocData 'Get data from the file nCnt is from where to start the get


If nCnt + 1024 > LenFile Then
WinS.SendData Mid$(LocData, 1, (LenFile - nCnt))
Else

WinS.SendData LocData 'Send the chunk
End If

nCnt = nCnt + 1024

Loop


Close #99

End Sub
...全文
195 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
idhgd 2007-07-23
  • 打赏
  • 举报
回复
收到了,可是不行啊
Else ' 否则为图片内容
Put #1, , bytSum'这报错
End If
jacobhunter 2007-07-23
  • 打赏
  • 举报
回复
不好意思,我那天写快了,而且也没时间做测试,呵呵


我再发次给你
WM_JAWIN 2007-07-20
  • 打赏
  • 举报
回复
LocData 应该定义成byte数组.
jacobhunter 2007-07-20
  • 打赏
  • 举报
回复
邮件已发出,请查收!
idhgd 2007-07-19
  • 打赏
  • 举报
回复
idhgd@163.com
麻烦你发一个过来吧,谢谢了.明天看
idhgd 2007-07-19
  • 打赏
  • 举报
回复
我先看看,不行就得麻烦你了
jacobhunter 2007-07-19
  • 打赏
  • 举报
回复
你是用WinSock传文件吧?

你试试这样做

dim gbytSum() as byte

private sub command1_click()
open app.path & "\aaa.jpg" for binary as #1
get #1,,gbytSum
close #1
winsock1.senddata "aaa.jpg"
doevents
winsock1.senddata gbytSum
end sub

收的时候先获取对方发过来的文件名"aaa.jpg"然后
open app.path & "\aaa.jpg" for binary as #1
打开文件,但暂不关闭,再获取文件内容,将文件内容同样读入一二进制数组中
再将二进制数组写入文件
put #1,,bytSum
全部写完后再关闭文件
close #1



如果还有不明白的话,我可以做个例子发给你看
idhgd 2007-07-19
  • 打赏
  • 举报
回复
我把文件传过去了,可是打开就提示没有足够的内存来完成该操作.自己用画图打开也这样,是什么原因?
idhgd 2007-07-19
  • 打赏
  • 举报
回复
那怎么改呢?用什么类型
fxy_2002 2007-07-19
  • 打赏
  • 举报
回复
LocData 是个字符串类型
二进制文件读进来后会出现问题
zzyong00 2007-07-19
  • 打赏
  • 举报
回复
应该什么文件都能传啊

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧