2012-03-07 41 views
1

我很新,所以有點困惑。我想使用Socket類將「OPTIONS」轉換爲十六進制。所以這是我迄今爲止所擁有的。我有「選項」轉換爲十六進制,並希望發送「4F5054494F4E53」。C#套接字發送字符串轉換

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」等我該如何面對呢?由於

回答

2

在ASCII 0×52 = 4字符,0x70 =焦炭˚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."); 
     } 
+0

我只是去嘗試和陣列包含79808473797883,但我需要它具有上述的價值。 – user1224096 2012-03-07 02:01:02

+0

@ChaosPandion我不知道這將如何幫助我,因爲我將不得不將它再次轉換爲一個字節數組,我仍然有同樣的問題。 – user1224096 2012-03-07 02:06:37

+0

@ user1224096:79 decimal = 0x4F hex = ASCII O,80 = 0x50 = P,84 = 0x54 = T等Google ASCII表 – 2012-03-07 02:15:29