Używałem tego kodu, mianowicie klasy Packet i PlainPacket : http://yaras.pl/szyfrowana-komunikacja-tcp-w-csharp/4/ .
Dodatkowo, obiekt który chcę wysłać przez TCPClienta to
[Serializable]
class _Message : Packet
{
public int AddressIndex, HomeIndex;
public string Text;
public _Message(int targetIndex, int homeIndex, string text)
{
HomeIndex = homeIndex;
AddressIndex = targetIndex;
Text = text;
}
}
Od strony klienta wysyłanie wygląda tak :
NetworkStream stream;
stream = client.GetStream();
w = new BinaryWriter(stream);
_Message Msg = new _Message(0,0,"test");
w.Write(Msg.Serialize());
Na serwerze odbieram :
PlainPacket ObtainedPacket = PlainPacket.Deserialize(stream); //w tej linii wywala exception
Packet FinalPacket = ObtainedPacket.GetPacket();
_Message tmp = (_Message)FinalPacket;
Exception : [System.Runtime.Serialization.SerializationException] = {"Strumień wejściowy nie ma prawidłowego formatu binarnego. Zawartość początkowa (w bajtach): 04-23-4D-53-47-FC-01-41-41-45-41-41-41-44-2F-2F-2F ..."}
Gdzie leży problem?