VB SOCKET GETDATA问题

seulgt 2014-05-19 04:52:27
Dim totalData As String
Dim strData As String
Dim totalLen As Integer
Private Sub csock_DataArrival(ByVal bytesTotal As Long)

If csock.State <> sckConnected Then
Exit Sub
End If
If totalLen = 0 Then
totalData = ""
csock.GetData strData, vByte, 1024
Dim headLen As String
headLen = Left(strData, 1)
totalLen = Asc(headLen)
End If
csock.GetData strData, vByte, totalLen
If Len(totalData) < totalLen Then
totalData = totalData + strData
If Len(totalData) = totalLen Then
fun_allDataReceived
End If

End If
End Sub
先取包头 根据包头里取到的长度 取相应长度的信息 csock.GetData strData, vByte, totalLen 运行时这一行提示类型不匹配
...全文
277 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-05-23
  • 打赏
  • 举报
回复
不知道有多少前人掉在TCP Socket send(人多)send(病少)send(财富) recv(人多病)recv(少财富) 陷阱里面啊! http://bbs.csdn.net/topics/380167545
王二.麻子 2014-05-22
  • 打赏
  • 举报
回复
慢慢调试,看看逻辑是否正确 看看出错的时候totalLen是多少,接收缓冲区有多少数据 winsock也一样会分包发送吧? 自己构造缓冲区,确定收到完整的数据包
fred009 2014-05-20
  • 打赏
  • 举报
回复
socket.GetData Data, String, totalLen
seulgt 2014-05-20
  • 打赏
  • 举报
回复
有没有人知道啊 快来人啊
seulgt 2014-05-19
  • 打赏
  • 举报
回复
有没有高人指点下

1,488

社区成员

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

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