!关于Winsock控件接收十六进制数据的有关问题
高手指点!关于Winsock控件接收十六进制数据的问题
Public Function StrToHex(ByVal S As String) As String
On Error Resume Next
Dim ByteArr() As Byte
ByteArr = StrConv(S, vbFromUnicode)
Dim Temps As String
Dim Temp As Byte
Dim i As Long
Dim outs As String
For i = 0 To UBound(ByteArr)
Temp = ByteArr(i)
Temps = Hex(Temp)
Temps = Right( "00 " & Temps, 2)
outs = outs & Temps
Next
StrToHex = outs
End Function
Private Sub udpPeerA_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
Dim inByte() As Byte
Dim i As Integer
udpPeerA.GetData strData
inByte() = StrToHex(strData)
txtOutput.Text = txtOutput.Text & CStr( " < < ") & CStr(inByte)
strData = " "
End Sub
以上程序是本人在做通讯测试时用的,VB在接收到十六进制数据之后Winsock将其看成是ASCII码字符,用StrToHex就是将程序收到的字符转换成实际接收十六进制.现在有个问题是,在0~128(即00H~80H)以及255(0FFH)时,可以正确转换,但在81H~0FEH这些字符段时无法识别,好象就是我的VB里的ASCII码字符就是0~128似的,而不是255个!请问高手问题出在哪里,谢谢先!!!!
------解决方案--------------------
什么叫十六进制数据?干什么用的?
Public Function StrToHex(ByVal S As String) As String
On Error Resume Next
Dim ByteArr() As Byte
ByteArr = StrConv(S, vbFromUnicode)
Dim Temps As String
Dim Temp As Byte
Dim i As Long
Dim outs As String
For i = 0 To UBound(ByteArr)
Temp = ByteArr(i)
Temps = Hex(Temp)
Temps = Right( "00 " & Temps, 2)
outs = outs & Temps
Next
StrToHex = outs
End Function
Private Sub udpPeerA_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
Dim inByte() As Byte
Dim i As Integer
udpPeerA.GetData strData
inByte() = StrToHex(strData)
txtOutput.Text = txtOutput.Text & CStr( " < < ") & CStr(inByte)
strData = " "
End Sub
以上程序是本人在做通讯测试时用的,VB在接收到十六进制数据之后Winsock将其看成是ASCII码字符,用StrToHex就是将程序收到的字符转换成实际接收十六进制.现在有个问题是,在0~128(即00H~80H)以及255(0FFH)时,可以正确转换,但在81H~0FEH这些字符段时无法识别,好象就是我的VB里的ASCII码字符就是0~128似的,而不是255个!请问高手问题出在哪里,谢谢先!!!!
------解决方案--------------------
什么叫十六进制数据?干什么用的?