byte[] msg = new Byte[256];
s.ReceiveFrom(msg, ref senderRemote);
//string deviceID = Convert.ToString(msg[5], 16);
string rt = System.Text.UTF8Encoding.UTF8.GetString(msg);msg数组里存的是 16进制 内容这样 rt 的字符串,显示出来的是乱码, 有什么简单的办法,把msg数组里的16进制字节,组成一个字符串如:“AA BB CC DD EE”
s.ReceiveFrom(msg, ref senderRemote);
//string deviceID = Convert.ToString(msg[5], 16);
string rt = System.Text.UTF8Encoding.UTF8.GetString(msg);msg数组里存的是 16进制 内容这样 rt 的字符串,显示出来的是乱码, 有什么简单的办法,把msg数组里的16进制字节,组成一个字符串如:“AA BB CC DD EE”
{
string returnStr = "";
if (bytes != null)
{
for (int i = 0; i < bytes.Length; i++)
{
returnStr += bytes[i].ToString("X2");
}
}
return returnStr;
} 这么写,能实现了,,但是也有问题,,就是数组开了256个大小后,而实际内容若只有3个,调用函数,除了前三个 ,,,后面全是补“00” ,非要补齐 256个长度从协议约定上 改改,应该不是啥问题了
像这种问题可以右键点击Cast<byte>()转到定义查看他提供的一系列变量和方法,都有详细的注释。