以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]socket客户端接收hex数据怎么实现?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=147594)

--  作者:54292550
--  发布时间:2020/3/20 9:21:00
--  [求助]socket客户端接收hex数据怎么实现?
之前找到了一个TCP的例子,不过是接收字符串的。

Public socket As MyClient
Public Class MyClient
Public receiveThread As System.Threading.Thread
Public nStream As System.Net.Sockets.NetworkStream
Public tcp As  System.Net.Sockets.TcpClient
Public Sub New(ByVal ip As String, ByVal port As Integer)
Dim server As System.Net.IPAddress = System.Net.IPAddress.Parse(ip)
tcp = New System.Net.Sockets.TcpClient()
Try
    tcp.Connect(ip, port)
Catch generatedExceptionName As Exception
    tcp = Nothing
End Try
If tcp Is Nothing Then
    MsgBox("无法连接服务器,请重试")
Else
    Dim netStream As System.Net.Sockets.NetworkStream = tcp.GetStream()
    nStream = netStream
    receiveThread = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf ReceiveMsg))
    receiveThread.IsBackground=True
    receiveThread.Start()
    msgbox("登录成功")
End If
End Sub
Private Sub ReceiveMsg()
While True
    Dim packet As Byte() = New Byte(1024) {}
    nStream.Read(packet, 0, packet.Length)
    Dim str As String = Encoding.Default.GetString(packet)
    Dim txt = forms("窗口1").Controls("TextBox2")
    txt.Text &= iif(txt.text > "", vbcrlf, "") & str
End While

End Sub
End Class



--  作者:有点蓝
--  发布时间:2020/3/20 10:05:00
--  
packet 就是结果,如果不是字符串,去掉下面代码即可

Dim str As String = Encoding.Default.GetString(packet)
    Dim txt = forms("窗口1").Controls("TextBox2")
    txt.Text &= iif(txt.text > "", vbcrlf, "") & str