我有一個客戶端服務器應用程序,其中服務器和客戶端需要通過網絡發送和接收自定義類的對象。我正在使用TcpClient類來傳輸數據。我在發送端序列化對象,並將產生的字節流發送給接收者。但在接收器,當我嘗試反序列化收到的字節,它會拋出異常序列化和細節是:使用C#中的Tcpclient類發送和接收自定義對象
輸入流不是有效的 二進制格式。起始內容 (以字節爲單位)爲: 0D-0A-00-01-00-00-00-FF-FF-FF-FF-01-00-00-00-00-00 ...
序列化對象我的服務器代碼:
byte[] userDataBytes;
MemoryStream ms = new MemoryStream();
BinaryFormatter bf1 = new BinaryFormatter();
bf1.Serialize(ms, new DataMessage());
userDataBytes = ms.ToArray();
netStream.Write(userDataBytes, 0, userDataBytes.Length);
客戶端代碼解串是:
readNetStream.Read(readMsgBytes, 0, (int)tcpServer.ReceiveBufferSize);
MemoryStream ms = new MemoryStream(readMsgBytes);
BinaryFormatter bf1 = new BinaryFormatter();
ms.Position = 0;
object rawObj = bf1.Deserialize(ms);
DataMessage msgObj = (DataMessage)rawObj;
請幫我解決這個問題,可能提出的任何其他方法傳輸自定義類acr的對象在C#中使用TcpClient的oss網絡。
謝謝, Rakesh。