我建立一个机器人应用(与Java 1.6) - 这是实际的客户端数据传输JAVA - > C# - 澄清?
它发送和接收数据到它承载其使用networkStream
和socket TCP/IP
.NET应用程序的Windows机器。
其被发送的数据是bytes
(显然 - 所有是字节),但Java客户端转换为字节的类型有:
ints
,Guids
,string
(字节是通过UTF-8编码)。
问题
我相信,原始类型可以安全地 - 在.NET端解码。
例如:如果我在Java端发送4个字节 - 我能得到INT早在C#中端:
public static int ConvertBytesToInt(byte[] LengthValueBytes)
{
var bitArray = new BitArray(LengthValueBytes);
if (bitArray.Length > 32)
throw new ArgumentException("Argument length shall be at most 32 bits.");
int[] array = new int[1];
bitArray.CopyTo(array, 0);
return array[0];
}
而且串:
Encoding.UTF8.GetString(...bytes....)
但怎么样更复杂的类型? GUID,日期时间等...?
我只在原始的一边安全吗?
定义“安全”。你想在这里解决什么具体问题?你显然不能在.NET代码中重构纯Java类型,反之亦然,所以当然,你可以完成什么是有限的。但是你可以通过编写一些代码来明确解释你收到的字节。 – 2014-11-06 08:06:19
@PeterDuniho我没想到在.net端有序列化的'person'类被反序列化。我只是问什么类型,我是完全安全的(诠释,正如我所说,字符串,因为我也说过) - 简而言之,我只在原始类型安全吗? – 2014-11-06 08:07:42
您将需要将所有内容转换为字节。 Java如何保存日期时间可能与.NET如何保存日期不兼容。如果你通过了毫秒或者一个字节流式传输,那么这应该起作用。 – 2014-11-06 08:07:49