我正在用.NET套接字爲客戶端/服務器程序(它是我正在使用的系統的一個模型),以方便使用。一切都在順利進行,數據全部被髮送; char數組一直是最大的問題。緩衝和封送字符數組通過套接字,打印System.Char []
我發送的數據包本質上是一堆雙胞胎和一個結構內的char數組(這是必要/必要的,因爲它模擬了我模擬的系統上的數據包)。所有的雙打工作都很好,但是char數組有點棘手,因爲數組需要是4個字節/字符長。
我已經使用編組庫來處理的字節數據以及4的字符數組緩衝區大小像這樣:
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] public char[] tmp;
我也使用:[StructLayout(LayoutKind.Sequential,字符集= CharSet.Ansi)]以確保我的字符是1個字節。最終會讀取我的客戶端程序的服務器以C語言編寫,我希望確保類型正好與此類似。
無論如何,我目前使用的服務器程序測試的東西收到數據包和一切正常,但是當我嘗試打印它出於調試的目的字符數組並沒有完全按照計劃。
我有一個大的字符串,我把所有的東西變成像這樣:
return_str += "\nChar Array (tmp) : " + str.tmp;
然後我用後來函數調用打印。
打印什麼是以下:
System.Char[] .
代替我所指定的字符數組被(IE,ABCD或類似的東西)。
我指定我的數據包值的方式是帶有滑塊和文本框等窗口應用程序。就像我說的,雙打都完美地傳達了它們的值,但這是另一個問題。
我不確定這是一個編組代碼的問題,還是我缺少char數組。
真的可以使用一些幫助
感謝您的迴應,修復它!我有點卡住了char [],因爲它是我試圖建模的系統中使用的類型。但我將來會記住這一點,謝謝你的提示。 – Wuzseen