TCP端口 16进制数据问题

onetiger1243 2008-01-15 11:56:55
发送端发送的是FC 2C 01 0D 0A 0A 00 0B 0D 0B 0A 00 16 0D 0C 0A 00 21 0D 1E 0A 00 2C 0D 14 0A 00 37 0D 15 0A 00 00 1A 0A 0D 28 0A 07 FA,按16进制发送
接收端用的是WINSOCK控件,收到的字符串是乱码,然后我用的解码代码如下:
Private Sub Winsk1_DataArrival(index As Integer, ByVal bytesTotal As Long)

Dim Receive_Byte() As Byte
Dim Receive_Temp As Variant
Dim Temp_En As String
If Y_ConnOK(index) = True Then
Winsk1(index).GetData MidData, vbString
Receive_Temp = MidData
Receive_Byte = Receive_Temp
For i = 0 To Len(Receive_Temp)
If Receive_Byte(i) < 16 Then
Temp_En = Temp_En & "0" & Hex(Receive_Byte(i))
Else
Temp_En = Temp_En & Hex(Receive_Byte(i))
End If
Next
Info_In = Info_In & Temp_En
Temp_En = ""
Text7 = Info_In
Info_In = ""
解出来却是3F0001000D000A000A0000000B000D000B000A00000016000D000C000A00000021000D001E000A00
哪儿出的问题呢?
...全文
136 点赞 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
gongxuchao 2008-01-15
你是把已经接收到的十六进制数又转换为十六进制了吧。
回复
gongxuchao 2008-01-15
For i = 0 To UBound(str)
If Len(Hex(str(i))) = 1 Then
strData = strData & "0" & Hex(str(i))
Else
strData = strData & Hex(str(i))
End If
Next
我做的项目接收的也是十六进制数,不过是从串口发上来的。处理数据这块应该是差不多。上面就是我的代码。
把从获取的数据全部给数组str()然后每个拆开。因为我的数据是两位一起参加计算所以要补0
最后strdata就是整个16进制的字符串
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7451

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告