Envoie d'un objet sérialisé via un TCPClient
Bonjour, j'ai un problème lors de l'envoie d'un objet sérialisé à un serveur. J'ai essayé de chercher sur le net j'ai pas pu identifié la source de mon erreur. En fait, j'ai un objet "IdentificationClient" que je voudrais l'envoyer à un serveur.
Voilà le code que j'ai fait pour la partie client :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
fluxClient = client.GetStream();// client de type TCPClient
if (fluxClient.CanWrite)
{
MemoryStream ms = new MemoryStream();
IFormatter bf = new BinaryFormatter();
bf.Serialize(ms, IdentificationClient);//Objet à sérialiser
byte[] writerbuffer = ms.GetBuffer();
ms.Close();
fluxClient.Write(writerbuffer, 0, writerbuffer.Length);
fluxClient.Close();
} |
Dans la partie serveur je souhaite récupérer l'objet pour effectuer des traitements :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
NetworkStream fluxClient = serviceClient.GetStream();
if (fluxClient.CanRead)
{
byte[] data = new byte[serviceClient.ReceiveBufferSize];
MemoryStream ms2 = new MemoryStream(data);
fluxClient.Read(data, 0, (int)serviceClient.ReceiveBufferSize);
IFormatter formatter = new BinaryFormatter();
IdentificationClient p = (IdentificationClient)formatter.Deserialize(ms2); // you have to cast the deserialized object
fluxClient.Close();
//client.Close();
//server.Stop();
String loginUser = p.LoginClient;//renvoie le login
MessageBox.Show(loginUser);
} |
J'espère que vous pouvez m'aider.