我想创建一个数据包并将其写入socket 该数据包以'C0'十六进制值开头 在php中,我可以使用以下代码轻松创建它:
$a = "\xC0";
现在我想用c#创建它。怎么办呢?
答案 0 :(得分:7)
在C#中,字符串是Unicode编码的,因此您不应将它们用于二进制数据。而是使用字节数组。
要创建以C0开头的字节数组,请执行以下操作:
byte[] packet = new byte[] { 0xC0, /* Other values */ };
如果您要发送现有字符串,可以使用Encoding.ASCII
将其转换为您需要的字节。
答案 1 :(得分:1)
如果要发送字节,就像以下一样简单:
byte a = 0xC0;
如果数据包包含文本,您可以开始一个字符串:
string a = "\xC0";
有关字符串文字的更多信息:http://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx