Envoyer un tableau string via les sockets [Résolu]

Signaler
Messages postés
55
Date d'inscription
samedi 25 septembre 2004
Statut
Membre
Dernière intervention
2 avril 2007
-
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
4 mai 2007
-
Bonjour,

j'ai un tableau du genre :

string[] tab = new string[] { "test","test0","test1" };



Comment je dois faire pour l'envoyer par les sockets, parce que je ne sais pas le convertir en Byte avec

System.Text.Encoding.ASCII.GetBytes(tab); car c'est un tableau :s:s

Donc comment je dois faire pour l'envoyer via les sockets et le récupérér de l'autre côté dans le même tableau ??

Merci
C# top!!

4 réponses

Messages postés
540
Date d'inscription
dimanche 29 décembre 2002
Statut
Modérateur
Dernière intervention
13 mai 2011

Cette fonction transforme n'importe quel objet en tableau de Bytes .

public byte[] SerializeObject(object MyObject)
{
Stream _stream = new MemoryStream();
IFormatter formatter = new BinaryFormatter();
formatter.Serialize(_stream,MyObject);
byte[] _byteArray = new byte[_stream.Length];
_stream.Seek(0,SeekOrigin.Begin);
int _octetsLus = _stream.Read(_byteArray,0,(int)_stream.Length);
return _byteArray;
}

Poppyto http://www.poppyto.net LE site pour les bassistes
http://blogs.developpeur.org/Poppyto Mon Blog sur C#
Messages postés
55
Date d'inscription
samedi 25 septembre 2004
Statut
Membre
Dernière intervention
2 avril 2007

Merci, et de byte[] vers string[] ?
Merci

C# top!!
Messages postés
540
Date d'inscription
dimanche 29 décembre 2002
Statut
Modérateur
Dernière intervention
13 mai 2011

Essaye d'inverser la fonction, je vais pas tout te mâcher le travail . Si tu as un problème durant la procédure inverse repasse par ici.

Poppyto http://www.poppyto.net LE site pour les bassistes
http://blogs.developpeur.org/Poppyto Mon Blog sur C#
Messages postés
546
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
4 mai 2007
1
Bonjour je n'est pas testé mais je voulais savoir si
pour Deserializer cela suffit :

public object DeserializeByte(byte[] b)
{
Stream _stream = new MemoryStream(b);
IFormatter formatter = new BinaryFormatter();
return formatter.Deserialize(_stream);

}

Merci d'avance