C# tcp发送十六进制数据

 C# tcp发送十六进制数据

通讯里发送的都是byte,是不存在十六进制数据的,十六进制的全称叫十六进制字符串,也就是说比如F0,转换后就是一个byte字节,值为十进制240,只有当把收到的240转成十六进制字符串时才有F0

只需要用下面方法调用,将得到的byte数组发送出去就行
public static byte[] HexStringToByteArray(string s)
{
    s = s.Replace(" ", "");
    byte[] buffer = new byte[s.Length / 2];
    for (int i = 0; i < s.Length; i += 2)
        buffer[i / 2] = (byte)Convert.ToByte(s.Substring(i, 2), 16);
    return buffer;
}
 
示例来说就是
string datapacket = "f02e00010200ff";
byte[] array=HexStringToByteArray(datapacket); 
           
 socConnection.Send (array);

 

你可能感兴趣的:(winfrom,c#,.net,tcp/ip,C#,tcp发送十六进制数据)