socket受到的字节。怎么处理?

evertop 2006-11-21 06:21:29
dim data() as byte

data(0)=24
data(1)=1
data(2)=0
data(3)=0
data(4)=222
data(5)=65
data(6)=66
data(7) = 203
data(8) = 14
data(9) = 83
data(10) = 151 其中0-3个字节表示一个整数 4-6表示字符串 7-10表示日期型,怎么分别弄出来??谢谢
...全文
120 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
king8192 2006-11-29
  • 打赏
  • 举报
回复
声明下CopyMemory
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
king8192 2006-11-29
  • 打赏
  • 举报
回复
你先将这个字节数组转换成字符串吧
Public Function ByteArrToHexStr(bArr() As Byte, Optional nStartPos As Long = 0, Optional nLen As Long = 0) As String
Dim bArrTmp() As Byte
Dim nLength As Long
Dim i As Long
Dim tmp As String
On Error GoTo errHdl
ByteArrToHexStr = ""
nLength = nLen
If nLen <= 0 Then nLength = UBound(bArr) - LBound(bArr) + 1
ReDim bArrTmp(nLength - 1)

CopyMemory bArrTmp(0), bArr(nStartPos), nLength
For i = 0 To nLength - 1
tmp = Format(Hex(bArrTmp(i)), "00")
If Len(tmp) = 1 Then tmp = "0" & tmp
ByteArrToHexStr = ByteArrToHexStr & tmp 'Format(Hex(bArrTmp(i)), "00")
Next
Exit Function
errHdl:
ByteArrToHexStr = ""
End Function
然后再去分析
evertop 2006-11-22
  • 打赏
  • 举报
回复
的确使用4个字节表示
dim a(3) as byte
a(0)=232 a(1)=167 a(2)=99 a(3)=69 是什么时间?
  • 打赏
  • 举报
回复
CopyMemory (目标变量 As 任意类型标识符, 源变量 As 任意类型标识符, ByVal 字节长度 As Long)

很容易理解,你可以建立一个TYPE,包括一个整数成员,一个3字节的字符串成员和一个日期型成员,然后

CopyMemory 自定义类型变量,data(0),11
ZOU_SEAFARER 2006-11-21
  • 打赏
  • 举报
回复
日期你用4字节能表示码?? 8字节
dim b as date
call comymemory(b,data(7),8)
  • 打赏
  • 举报
回复
是CopyMemory,打错一个字母

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _ (Destination As Any, Source As Any, ByVal Length As Long)

Sub SwapPtr(sA As String, sB As String)
 Dim lTmp As Long
 CopyMemory lTmp, ByVal VarPtr(sA), 4
 CopyMemory ByVal VarPtr(sA), ByVal VarPtr(sB), 4
 CopyMemory ByVal VarPtr(sB), lTmp, 4
End Sub
cangwu_lee 2006-11-21
  • 打赏
  • 举报
回复
copyMemory( dstru, data, len(dstru) )
ZOU_SEAFARER 2006-11-21
  • 打赏
  • 举报
回复
dim a as long
dim b as data
call comymemory(a,data(0),4)

日期你用4字节能表示码?? 8字节
call comymemory(a,data(7),8)
字符串用循环chr 就可以了
  • 打赏
  • 举报
回复
用API函数COPYMEMERY(有点记不太清楚了)进行转换就可以了。
具体的查一下该函数说明。

1,451

社区成员

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

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