我对此很陌生,所以有些困惑。我想使用Socket类发送转换为十六进制的“OPTIONS”。所以这就是我到目前为止所拥有的。我将“OPTIONS”转换为十六进制,并希望发送“4F5054494F4E53”。
private void button2_Click(object sender, EventArgs e)
{
var message = Encoding.ASCII.GetBytes("4F5054494F4E53");
client.BeginSend(message, 0, message.Length, SocketFlags.None,
new AsyncCallback(SendData), client);
}
但是当我在BeginSend上设置断点时,消息字节数组包含“52705348”而不是“4F5054”等。我该如何处理?感谢
答案 0 :(得分:2)
在ASCII 0x52 = char 4,0x70 = char F等中, 得到你期望的结果:
var message = Encoding.ASCII.GetBytes("OPTIONS");
验证:
byte[] verifyHex = new byte[] { 0x4F, 0x50, 0x54, 0x49, 0x4F, 0x4E, 0x53};
byte[] verifyDec = new byte[] { 79, 80, 84, 73, 79, 78, 83};
var message = Encoding.ASCII.GetBytes("OPTIONS");
if (message.Where((t, i) => t != verifyDec[i] || t != verifyHex[i]).Any())
{
MessageBox.Show("Not equal.");
}
else
{
MessageBox.Show("All three representations are equal.");
}