0

我想使用 getstring 获取十六进制类型的数据,但我不太了解 C#。如何修改代码以实现该功能?我有一个设备不断通过套接字将十六进制数据发送到我的 PC。我发现下面的socket程序接收hex类型的数据,但是后来接收数据的显示完全是乱七八糟的代码,没有任何意义。我不知道我是否使用了错误类型的数据或其他问题。谁能帮我解决一下,非常感谢!

我根据建议修改了我的程序,它给了我一些我想要的字符串,但后来打印出了一个 000000 的序列,并且它从未停止过。为什么会这样?

 public void ReceiveMsg()
    {
        while (true)
        {
            byte[] data = new byte[1024];
            int recv = newclient.Receive(data);
            Encoding.UTF8.GetString(data, 0, recv);
            string hexString = BitConverter.ToString(data).Replace("-", string.Empty);
            //string stringdata = Encoding.UTF8.GetString(data, 0, recv);
            showMsg(hexString + "\r\n");

        }
    }
4

1 回答 1

0

此语句会将您的字节数组转换为字符串。

string stringdata = Encoding.UTF8.GetString(data, 0, recv);

以下代码将字节数组转换为十六进制字符串

StringBuilder hexString = new StringBuilder(data.Length * 2);
foreach (byte b in data)
   hexString.AppendFormat("{0:x2}", b);

或者你可以使用

string hexString = BitConverter.ToString(data);    
于 2014-03-18T03:53:09.943 回答