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
哪儿出的问题呢?
...全文
318 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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进制的字符串

7,785

社区成员

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

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