C#で最初にエンコードされたバイト配列からintを変換する際に問題が発生しました。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は、2つの配列を一緒に追加します。これは、C#からC#の間で使用したために機能します。ウェルカムメッセージには、最初にヘッダーバイトがロードされ、クライアントに情報が何であるかが通知されます。デコードしようとすると、Java側で奇妙な値が表示されます。デコードまたはエンコードが不適切かどうかわかりません。Java側はそのようなものです。これはAndroidデバイスで実行されています:
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.