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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.