Socket - Envoye une série de Byte Null à la fin
Bonjours
Mon programme envoye une image sous forme de Byte[] à travers un socket (TcpClient).
Mon serveur reçoit le début de l'image exactement comme il a été envoyé mais la fin en rempli de caractère null
Je fais comme suit (en gros) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
// --------------
// code client
// --------------
m_memoryStream = new MemoryStream();
Bitmap ecran = (...);
ecran.Save(m_memoryStream, System.Drawing.Imaging.ImageFormat.Gif);
// m_stream est le stream d'un TcpClient
m_stream.Write(m_memoryStream.ToArray(), 0, m_memoryStream.Length);
// --------------
// code serveur
// --------------
Byte[] m_contenuCourant = Byte[...];
//m_stream est le stream d'un TcpListener
m_stream.Read(m_contenuCourant, 0, m_contenuCourant.Length)
MemoryStream ms = new MemoryStream(m_contenuCourant);
Bitmap bm = new Bitmap(ms); // Erreur ici |
L'erreur dit "Paramètre invalide" puisque la fin du fichier est corrompu.
Il est possible de passer de Bitmap > MemoryStream > Bitmap. Sur le même projet, ça fonctionne bien. J'ai des soucis lors de l'envoye par socket.
Quelqu'un a déjà vu ce problème avant ?
Merci beaucoup