【问题标题】:Read TCP packets directly as hex直接以十六进制读取 TCP 数据包
【发布时间】:2012-07-15 18:18:29
【问题描述】:

我有这个System.Net.Sockets.TcpClient。我可以建立连接并将数据包准确地写入它。问题是要按原样读取数据包(被嗅探器以十六进制形式捕获,如 0F 03 56 56 等)

我尝试查看GetStream.write 的示例,但我没有以这种方式阅读它们。我还尝试使用流式阅读器,然后将数据包转换为十六进制,但我连接的东西发送搞砸的数据包,无法转换或简单的不是字符串形式。

我希望我已经足够清楚了。

Dim bytes(tcpClient.ReceiveBufferSize) As Byte 
' Read can return anything from 0 to numBytesToRead. 
' This method blocks until at least one byte is read. 
netStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize)) 
' Returns the data received from the host to the console. 
Dim returndata As String = Encoding.ASCII.GetString(bytes) 

【问题讨论】:

  • 阅读时会发生什么?线路着火了?显示一些代码。
  • 编辑您的帖子。不要将代码放在评论中。
  • 我从另一个论坛获得了一些工作代码 感谢您的耐心等待!

标签: vb.net tcp hex packets


【解决方案1】:

找到了解决方案!这里是:

Dim Bytes() as Byte = New Byte(1024){}
Array.Resize(Bytes, TcpClient.Client.Receive(Bytes, SocketFlags.None))

For Each B As Byte In Bytes
    Debug.Print("Byte in HEX Format: " & B.ToString("X2"))
Next

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多