我想使用getstring获取十六进制类型的数据,但我不太了解C#。如何修改代码来实现该功能?我有一个设备继续通过套接字将十六进制数据发送到我的PC。我发现下面的套接字程序接收十六进制类型数据,但后来接收数据的显示完全是凌乱的代码,没有任何意义。我不知道我是否使用了错误的数据类型或其他问题。任何人都可以帮我解决它,非常感谢!
我根据建议修改了我的程序,它根据我的需要给了我一些字符串,但后来打印出一系列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");
}
}
答案 0 :(得分: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);