Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : transferer un objet Bitmap (Client-->Serveur) [ Réseau & Internet / Client - Serveur ] (xolucinte2)

vendredi 9 mars 2007 à 19:40:57 | transferer un objet Bitmap (Client-->Serveur)

xolucinte2

Bonjour à tous.

Je débute dans le c#. J'aimerais avoir des explications sur le transfert d'un objet Bitmap.
J'ai vu qu'il avait le mécanisme de sérialisation qui permet d'envoyé un objet.
Mais je n'ai pas vraiment compris comment cela fonctionne.

Serait-il possible d'avoir un peu plus d'explication ou des liens que je n'aurais pas trouvés.

Fonction pour envoyer mon objet Bitmap

public void EnvoyerScreen()

{

tbRecevoir.AppendText("Debut de l'envoie\n");

Bitmap b = CaptureScreen();

// Ouverture d'un flux vers le fichier souhaité.

FileStream fs = newFileStream("DataFile.dat", FileMode.Create);

 

// ICI

BinaryFormatter bf = newBinaryFormatter();

bf.Serialize(fs, b);

 

// Création d'un Reader Binaire sur ce flux

BinaryReader br = newBinaryReader(fs, Encoding.UTF8);

//Transformation en tableau de Byte

Byte [] bufferEnvoi = newByte[1024];

tbRecevoir.AppendText("avant le while\n");

while (br.Read(bufferEnvoi, 0, bufferEnvoi.Length) != 0)

{

// Envoi du fichier en retour

sClient.Send(bufferEnvoi, 0, bufferEnvoi.Length, SocketFlags.None);

}

tbRecevoir.AppendText("Fin de l'envoie\n");

}

Fonction pour recevoir mon objet Bitmap

ce code est dans une boucle while d'une fonction

byte [] bufferReception = newbyte[sClient.Available];

int sortie = sClient.Receive(bufferReception);

string message = System.Text.Encoding.ASCII.GetString(bufferReception, 0, bufferReception.Length);

if (message == "_s") //screen
{

tbEnvoyer.Text = "Début de l'envoie";

int bytes;

int i = 0;

// Ouverture d'un flux vers le fichier souhaité.

FileStream fs = newFileStream("DataFile.dat", FileMode.Create);

// Création d'un Reader Binaire sur ce flux

BinaryWriter bw = newBinaryWriter(fs);

//Transformation en tableau de Byte

Byte [] bufferReceptionImage = newByte[1024];

tbEnvoyer.Text = "avant le while";

while ( (bytes = (sClient.Receive(bufferReceptionImage, 0, bufferReceptionImage.Length, SocketFlags.None))) != 0)
{
      i++;

tbEnvoyer.Text = "Envoie en cours N° " + i + " : " + bytes;

// Envoi du fichier en retour
bw.Write(bufferReceptionImage, 0, bytes);
bufferReceptionImage = newByte[1024];

//sClient.Receive(bufferEnvoi, 0, bufferEnvoi.Length, SocketFlags.None);

}

// ICI
BinaryFormatter
bf = newBinaryFormatter();

Bitmap b = (Bitmap)bf.Deserialize(fs);

tbEnvoyer.Text = "Fin de l'envoie";

pictureBox1.Image = (Image)b;
}
else
{
tbEnvoyer.Text = "Message reçu : "+message;
}

 


Le programme d'envoie à l'air de fonctionner et le programme de reception bloque sur ma boucle While du Receive de ma socket.

N'hésiter pas à critiquer ma façon de programmer et de me dire les choses inutiles dans mon code.
Merci d'avance pour vos réponse.



Cette discussion est classé dans : objet, fs, envoie, bitmap, bufferenvoi


Répondre à ce message

Sujets en rapport avec ce message

[C#] charger un fichier .pgm dans un objet Bitmap [ par LawX ] Bonjour, un peu nouveau dans le namespace System.Drawing, j'essaie de m'y retrouver. Mais là, je vois pas comment faire, j'ai besoin d'aide: Je c objet Bitmap, adamter automatiquement la taille... [ par Buzu ] SalutJe crée un objet Bitmap en mémoire (classe qui hérite de Image) et j'ajoute ensuite dedans des rectangles de polygones, des traits, etc... (pour Zoom sur un objet Bitmap [ par DashCash ] Hello, je voulais simplement savoir s'il était possible de faire un zoom directement sur un objet de type Bitmap. Je sais qu'on peut facilement zoome Pb avec picturebox et objet Bitmap [ par Shogo6 ] Bonjour je suis au bord de la crise de neeeeerfs!!!!Voila je fais une visionneuse d'image donc on selectionne l'image desirée ds une listbox et elle s récupérer des valeurs entre classes [ par cococo84 ] bonjour, j'ai un projet avec plusieurs classes d'un même namespace, cependant je n'arrive pas à récupérer des valeurs de numericUpDown d'une classe à Image et Remoting [ par Equinox84 ] Bonjour à tout le monde, y compris ceux dont la tête tourne encore,lol ! Ma question: J'ai besoin de passer une image via mon remoting, mais l'objet Clonage d'objet. [ par LocalStone ] Salut à tous, J'ai un petit soucis. Je ne comprends pas comment on peut faire pour copier un objet par valeur et non par référence. Je sais qu'il fau Comment convertir un String en Color [ par bolo ] Bonjourj'aimerai dessiner une image , j'ai un tableau de type sting contenant tous les pixel de l'image .par exemple le premier pixel est "3230036"Mai Base de données + Meilleur solutions [ par emmanuel9 ] Bonjour à tous, - J'ai une base de données avec dedans des tables : "Personne" "Société" "Categorie". - J 'ai une application qui comporte 3 array objet COM/DCOM [ par souldav ] Bonjour, je  voudrais faire un serveur com en C# (ou c++) .net  (objet automation). j'ai bien l'habitude de ce genre de choses en delphi mais la, je n


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.