winsock的PeekData怎么使用??能给代码不??

ranassa 2010-04-15 06:40:43
我用winsock写了一个ftp上传下载的程序,但是今天下载一个53726长度的txt文件时,发现怎么弄下载的文件都只有8192长度。
查资料得知要用peekdata方法,调试了很久发现应该如此,但是peekdata我用不对,虽然下载的文件突破了8192,但是依然下载不完全,经常会有些奇奇怪怪的结果。
下面是我的代码,兄弟们帮忙看下?


Private Sub wscData_DataArrival(ByVal bytesTotal As Long)
Dim ByteData() As Byte
dblDataCom = dblDataCom + 8192

If dblDataCom > Val(strFileSize) Then
wscData.PeekData ByteData(), vbByte
Open strFileLocal For Binary Lock Write As #1
Put #1, , ByteData()
Close #1
wscData.Close
End If
end sub
...全文
225 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinaboyzyq 2010-04-15
  • 打赏
  • 举报
回复
PeekData 方法


PeekData 不从输入队列删除数据,除了这一点之外,方法与 GetData 相似。该方法仅适用于 TCP 连接。

语法

object.PeekData data, [type,] [maxLen]

PeekData 方法的语法包含下面部分:

部分 描述
object 对象表达式,其值是“应用于”列表中的对象。
data 在方法成功地返回之后存储获取的数据。如果对于没有足够的适于所请求的类型来说没有足够可用的数据,那么 data 将被设置为 Empty。
type 可选的。所获取的数据类型,如同“设置值”中所述。缺省值为:vbArray + vbByte。
maxLen 可选的。在收到字节数组或字符串时,长度指定了所需要的大小。如果对字节数组或字符串的参数丢失,则将获取所有可用的数据。如果提供的数据类型不是字节数组和字符串的话,则忽略该参数。


设置值

type 的设置值是:

类型 常数
Byte vbByte
Integer vbInteger
Long vbLong
Single vbSingle
Double vbDouble
Currency vbCurrency
Date vbDate
Boolean vbBoolean
SCODE vbError
String vbString
Byte Array vbArray + vbByte


返回值

Void

说明

如果所指定的类型为 vbString,则在返回到用户之前,字符串数据将转化成 UNICODE。

7,785

社区成员

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

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