2011-02-02 3 views
1

ID가 255 인 클라이언트에 보내는 패킷이 있습니다. 0, 1 및 2의 ID를 가진 패킷을 보내는 데 문제가 없었습니다. ID는 255 여야합니다 . 번역이 일어난 후 몇 가지 이유를 들어, 모두 나를 내 서버, 클라이언트와, 어떤 이드 "63"을 얻을 수 127바이트에서 패킷 ID를 읽는 중

이 내가 사용하고있는 코드보다 더 큰 :

Console.WriteLine(Asc(System.Text.ASCIIEncoding.ASCII.GetString(System.Text.ASCIIEncoding.ASCII.GetBytes(Chr("255"))))) 

자, 이것은 서버가하는 일의 지나치게 복잡한 버전입니다. 이것을 조금 불필요하다고 생각할 수도 있지만, 수행되는 역함수는보기 목적으로 만 사용됩니다.

"255"는 위의 형식으로 전송해야하는 패킷 ID입니다. 내가 말했듯이, 127보다 큰 것은 63을 반환합니다. 매우 짜증나.

도움을 주시면 감사하겠습니다.

답변

0

here에서 촬영 : ASCII는 7 비트 인코딩 때문에

ASCIIEncoding는 Windows 코드 페이지 20127.에 해당 ASCII 문자는 U + 0000부터 U + 007F에 가장 낮은 128 개 유니 코드 문자로 제한됩니다 .

255는 유효한 ASCII 문자가 아니기 때문에이 기술을 사용할 수 없습니다.

+0

글쎄, 내가 작업하고있는 서버 프로토콜은 이것을 필요로한다. 내가 연결할 클라이언트에 대한 자체 서버를 만들고 있습니다. 다음은 프로토콜 세부 사항에 대한 링크입니다. – FreeSnow

+0

http://mc.kev009.com/Protocol#Disconnect.2FKick_.280xFF.29 – FreeSnow

+0

필자는 ASCII 변환이 필요하다고 생각합니다. 링크는 16 진수 값만 참조하며 그 중 일부는 0x7F보다 큽니다. ASCII는 0x00과 0x7F 사이의 값에 대해서만 정의됩니다. http://www.klcconsulting.net/ascii.htm –