我在从首先用 C# 编码的字节数组转换 int 时遇到问题。我首先将其转换为大端序,因为 Java 以大端序而不是小端序工作。以下代码将 into 编码为字节
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# 之间使用过它。欢迎消息首先加载一个标题字节,让客户端知道信息是什么。当我尝试对其进行解码时,我在 java 端得到了奇怪的值。我不确定我是否解码或编码不正确。java端就是这样。这是在安卓设备上运行的:
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.