Dim a() As Byte
Winsock1.GetData a, vbArray Or vbByte
Text_Rec.Text = a
End Sub
这是我的一段接收代码,发送的是十六进制数据,接收也要十六进制的形式,可是我接受到的是乱码,不知道怎么回事,求大神帮忙,在线等待~
乱码出现这样子的 ?????
?漄???
???ú
这是我发送数据后返回的乱码
3 个解决方案
#1
ReDim iBuf(bytesTotal - 1)
tcpRTB.GetData iBuf
' log每个收到的字节
' i = 0
' lnx = "RTB-->BYTE:" + Right("0000000" + Hex(i), 8) + "-"
' For i = 0 To bytesTotal - 1
' lnx = lnx + " " + Right("0" + Hex(iBuf(i)), 2)
' If i Mod 16 = 15 Then
' LogRX lnx
' lnx = "RTB-->BYTE:" + Right("0000000" + Hex(i + 1), 8) + "-"
' End If
' Next
' i = bytesTotal - 1
' If i Mod 16 <> 15 Then
' LogRX lnx
' End If
#2
发送的是双字节吧?
strconv转换下
strconv转换下
#3
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim a() As Byte, i As Long, strTmp As String
Winsock1.GetData a, vbArray Or vbByte
For i = 0 To bytesTotal - 1
strTmp = strTmp & IIf(i, " ", "") & Right("00" & Hex(a(i)), 2)
Next i
Text_Rec.Text = strTmp
End Sub
#1
ReDim iBuf(bytesTotal - 1)
tcpRTB.GetData iBuf
' log每个收到的字节
' i = 0
' lnx = "RTB-->BYTE:" + Right("0000000" + Hex(i), 8) + "-"
' For i = 0 To bytesTotal - 1
' lnx = lnx + " " + Right("0" + Hex(iBuf(i)), 2)
' If i Mod 16 = 15 Then
' LogRX lnx
' lnx = "RTB-->BYTE:" + Right("0000000" + Hex(i + 1), 8) + "-"
' End If
' Next
' i = bytesTotal - 1
' If i Mod 16 <> 15 Then
' LogRX lnx
' End If
#2
发送的是双字节吧?
strconv转换下
strconv转换下
#3
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim a() As Byte, i As Long, strTmp As String
Winsock1.GetData a, vbArray Or vbByte
For i = 0 To bytesTotal - 1
strTmp = strTmp & IIf(i, " ", "") & Right("00" & Hex(a(i)), 2)
Next i
Text_Rec.Text = strTmp
End Sub