[英]C# Socket send string conversion
我對此很新,所以有些困惑。 我想使用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”等。我該如何處理? 謝謝
在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.");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.