Ho un'applicazione client server in cui il server e il client devono inviare e ricevere oggetti di una classe personalizzata sulla rete. Sto usando la classe TcpClient per la trasmissione dei dati. Sto serializzando l'oggetto dal lato del mittente e inviando il flusso di byte risultante al ricevitore. Ma al ricevitore, quando provo a de-serializzare i byte ricevuti, si getta serializzazione delle eccezioni ei dettagli sono:Invio e ricezione di oggetti personalizzati utilizzando la classe Tcpclient in C#
flusso L'ingresso non è un formato binario valido. I contenuti iniziali (in byte) sono: 0D-0A-00-01-00-00-00-FF-FF-FF-01-00-00-00-00 ...
il mio codice server che serializza l'oggetto è:
byte[] userDataBytes;
MemoryStream ms = new MemoryStream();
BinaryFormatter bf1 = new BinaryFormatter();
bf1.Serialize(ms, new DataMessage());
userDataBytes = ms.ToArray();
netStream.Write(userDataBytes, 0, userDataBytes.Length);
il codice client che de-serializza è:
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;
per favore mi aiuti a risolvere questo problema ed eventualmente suggerire qualsiasi altro metodo per trasmettere oggetti di classi personalizzate acr oss network che utilizza TcpClient in C#.
Grazie, Rakesh.