我轉換長爲8時隙字節數組C#8字節數組回長(C#至C++)
Byte[] Data = BitConverter.GetBytes(data.LongLength);
例如,如果data.LongLenght
是172085時,得到下面的數組{ 53,160,2,0,0,0,0,0} 但是之後,我發送到我的c + +服務器,我想再次得到它。
我tryed這一點,但沒有成功......
long fileLenght = 0;
for(int i=0;i < 8; ++i)
fileLenght = (fileLenght << 8) + Data[i];
它被存儲爲小端,你必須向後迭代。請注意,C++ * long *與C#long不同,您需要很長的時間。這種棘手的細節使得它不是通過電線發送二進制數據是一個好主意。 – 2014-09-26 19:16:23
@HansPassant說什麼。您應該定義一個逐字節的協議,以便對等方始終可以重新組合數據,無論是否需要語言/版本/接收它的任何內容(也檢測消息邊界 - 您的8字節消息可能無法到達一個recv呼叫)。 – 2014-09-26 19:22:25