2012-03-07 28 views
1

私はこれでかなり新しく、やや混乱しています。 Socketクラスを使って "OPTIONS"を16進数に変換して送信したいと思います。それでは、これまで私が持っていたことがあります。私は "OPTIONS"を16進数に変換し、 "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では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."); 
     } 
+0

を私はちょうどそれと配列を試してみました79808473797883が含まれていますが、上記の値が必要です。 – user1224096

+0

@ChaosPandionバイト配列に変換し直さなければならないので、どのように役立つのか分かりません。同じ問題が残っています。 – user1224096

+0

@ user1224096:79小数点= 0x4F 16進数= ASCII 0,80 = 0x50 = P、84 = 0x54 = TなどGoogle ASCII表 –

関連する問題