在VB中怎么实现发送16进制的数据,然后接受到后显示为10进制的

来源:百度知道 编辑:UC知道 时间:2024/05/22 14:29:22
我有一个聊天程序, 现在我想在发送端发送16进制的数据, 然后在接受端显示为10进制的, 应该加入一个怎样的转换函数。

附上聊天程序:
Private Sub Command1_Click()
Winsock1.SendData txtSend.Text
End Sub

Private Sub Form_Load()
Dim my As String
Winsock1.Protocol = sckUDPProtocol '设置为UDP协义
Winsock1.LocalPort = 4001 '随便设置,不过两个要一样
Winsock1.RemotePort = 4001
my = Winsock1.LocalIP '取得自己的IP地址,是不要的
Winsock1.RemoteHost = my'这里应该是设置为别人计算机的IP地址,由于自己是单机,所以就设置成自己的,自己给自己发信息
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) '取得数据时发生
Dim Tmp As String
Winsock1.GetData Tmp, vbString '取得数据
Tmp = "对方位址:" + Winsock1.RemoteHostIP + "发言内容为-->" + Tmp
txtMess.Text = Tmp + Chr$(13) + Chr$(10) + txtMess.Text
End Sub

请问怎样能实现发送16进制数据,接受显示为10进制的

实现16进制接收实质就是按2进制接收
设置MSComm控件的属性InputMode = comInputModeBinary '二进制接收
接收后由HEX函数转为16进制字符串形式显示
Option Explicit
Dim strData As String
Dim bytInput() As Byte

Private Sub MsComm1_OnComm()
Dim intInputLen As Integer
Select Case Me.MSComm2.CommEvent
Case comEvReceive
'此处添加处理接收的代码
MSComm1.InputMode = comInputModeBinary '二进制接收
intInputLen = MSComm1.InBufferCount
ReDim bytInput(intInputLen)
bytInput = MSComm1.Input
jieshou
End Select
End Sub

Public Function jieshou() '接收数据处理为16进制
Dim i As Integer
For i = 0 To UBound(bytInput)
If Len(Hex(bytInput(i))) = 1 Then
strData = strData & "0" & Hex(bytInput(i))
Else
strData = strData & Hex(bytInput(i))
End If
Next
Text1 = strData
End Function
Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.InBufferSize = 1024
MSComm1.OutB