2012-03-07 4 views
1

저는 꽤 익숙하지 않으므로 다소 혼란 스럽습니다. Socket 클래스를 사용하여 "OPTIONS"를 16 진수로 변환하여 보내려고합니다. 그래서 여기까지 내가 지금까지 가지고있는 것이 있습니다. "OPTIONS"가 16 진수로 변환되어 "4F5054494F4E53"을 보내려고합니다. C# Socket send 문자열 변환

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 = 문자 4, 0x70에서

답변

2

= 문자 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 표 –