簡體   English   中英

C#Socket發送字符串轉換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM