C#으로 인코딩 된 바이트 배열에서 int를 변환하는 데 문제가 있습니다. Java가 작은 것보다는 큰 것에서 작동하기 때문에 먼저 빅 엔디 언으로 변환합니다. 다음 코드는 into를 바이트로 인코딩합니다.C#에서 처음으로 인코딩 된 Java에서 바이트 가져 오기
Console.WriteLine("A new data client has connected!");
byte[] welcomeMessage = ASCIIEncoding.ASCII.GetBytes("Welcome young chap! Please let me know about anything you need!");
welcomeMessage = Byte.add(BitConverter.GetBytes(System.Net.IPAddress.HostToNetworkOrder(20)), welcomeMessage);
Byte.add는 두 개의 배열을 함께 추가합니다. 이것은 C#에서 C# 사이에서 사용 되었기 때문에 작동합니다. 환영 메시지는 먼저 클라이언트가 정보가 무엇인지 알 수 있도록 헤더 바이트로로드됩니다. 디코딩하려고 할 때 자바 측에서 이상한 값을 얻습니다. 내가 부적절하게 디코딩하거나 인코딩하고 있는지 확신 할 수 없다. 자바 측은 그런 것이다. 이것은 안드로이드 장치에서 실행 중입니다 :
if (ByteBuffer.wrap(buffer).getInt() == 20)
{
latestMessage = new String(buffer);
}
latestMessage = String.valueOf(ByteBuffer.wrap(buffer).getInt(0)); //Lets me see what value this is. Cant attach debugger for some reason ATM.
이봐 난 그냥 바이트로 헤더 INT 변환 라인을 포함하는 것을 잊었다 깨달았다. 나는 그것을 적절하게 바꿨다. –