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