我是网络编程的新手,所以我有一个问题:在我的C++和C#之间发送一个整数是否安全(因为32有“endianess”问题)去做?通过网络传输int
在我的程序中,我将int转换为char(我知道它低于255)并发送它。不过,我想发32 int。我尝试了使用协议缓冲区的行为。我使用C++中的WriteVarint32和C#中的ProtoReader.ReadUInt32,但没有成功(C#中的例外)。我认为它会工作后,我读this。
你会如此善良,并建议我在C++和C#应用程序之间发送一个整数的正确方法吗?如果你向我解释如何用协议缓冲区(在C#的情况下为protobuf-net)做到这一点,我会非常高兴。
那么为什么16bit没有endianness和32bit的问题呢? bigendian/littleendian机器的16位数据将会有所不同。我建议你决定一种方法(例如协议缓冲区)并尝试一下,并询问你得到的问题。 – 2011-06-04 09:55:41
@David varint编码工作在endianness周围(这是隐含的) – 2011-06-04 11:57:09