Classes dans une dll permettant l'écriture et la lecture d'objets sur un flux (stream)

0/5 (5 avis)

Vue 10 844 fois - Téléchargée 1 028 fois

Description

Cette source est écrite en VB.NET.
Elle contient une bibliothèque de classes permettant d'écrire et de lire des objets sur un flux (Stream).
Des exemples d'utilisation de cette DLL sont inclus dans le ZIP :
- le premier montre comment utiliser la DLL pour écrire et lire des objets dans un fichier.
- le deuxième montre comment utiliser la DLL pour écrire et lire des objets sur un flux réseau entre 2 sockets.

Source / Exemple :


Toutes les sources sont dans le ZIP

Conclusion :


Salut à tous,

la DLL que j'ai écrite en VB .NET permet d'écrire sur n'importe quel flux des objets de tout type.
La méthode que j'avais trouvé sur Internet était de sérialiser l'objet sur le flux, seulement,
avec un flux réseaux (socket ou autres), il fallait fermer le flux pour que l'objet soit réceptionné de l'autre côté.

J'ai donc eu l'idée de sérialiser l'objet d'abord dans un MemoryStream et ensuite, d'écrite le tableau de bytes obtenu sur le NetworkStream ou sur tout autre stream. Bien entendu, comme on ne connait pas d'avance le nombre de bytes que l'objet occupe, j'écrit ce nombre avant les bytes de l'objet. Ce nombre, quant à lui, fait toujours 8 bytes puisqu'il s'agit d'un entier long.

Voilà, le principe est donc assez simple mais cette DLL m'est très utile et j'espère qu'elle le sera pour vous aussi.

Petite remarque : pour l'écriture des objets, j'utilise la sérialisation, il faut donc que chaque classe d'objet à écrire sur le flux soit précédée de "<Serializable> _" pour que cela fonctionne. Il faut aussi que ces classes soient dans le même espace de nom pour pouvoir être désérialisées depuis un autre projet. Le mieux est donc de les mettre dans un même espace de nom.

Dans le fichier ZIP, vous pourrez voir la DLL et sa source ainsi qu'un example d'utilisation avec un flux FileStream et un flux NetworkStream entre 2 socket.

Remarque : le projet a été écrit avec SharpDevelop que vous pouvez télécharger gratuitement sur http://www.icsharpcode.net/OpenSource/SD/Download/
Si vous préférez utiliser Visual Studio .NET, il vous suffit de créer une solution vide et 5 projets :
2 bibliothèque de classe, 1 application console et 2 application WinForm.
Il ne vous restera plus qu'à récupérer les fichiers .vb contenant les sources des projets.

Pour l'application client/serveur, le login et le mot de passe à entrer pour avoir le message de bienvenue sont : login et passwd.

J'espère que cette source vous plaira et vous sera utile. Pour ceux qui n'ont pas envie d'utiliser les socket, le Framework .NET met à disposition un espace de nom System.Runtime.Remoting permettant de créer des objets à distance sur un serveur par exemple, et ensuite, de les manipuler comme de simples objets locaux. Je posterai un exemple complet lorsque je l'aurai terminé.
Cet exemple montrera comment modifier à distance le contenu d'une base de données et comment gérer l'accès multiples à un même enregistrement.

Soyez indulgent, ceci est la première source que je poste sur le site et je ne développe en .NET que depuis 5 mois bien que je sois développeur et donc, que je travail avec le .NET tous les jours.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
dkebe Messages postés 3 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 24 juillet 2009
24 juil. 2009 à 19:06
moi aussi suis entrain de faire des recherches pour la capture d'images dans un picturebox à partir d'une cam installée sur une autre machine.
cs_skiwi Messages postés 3 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 19 juin 2006
24 juin 2006 à 00:06
salut a tous,
je suis debutant en VB.NET mais je ne cherche qu'a apprendre ;-)
je developpe une appli pour faire de la videoconference, pour cela j'utilise directX9
par contre je ne sais pas dutout comment faire pour transmettre les frames "images" capturer de la webcam
ainsi que l'audio a l'autre application "application distante"...?

si vous avez un tutorial ou une source bien expliquer car je rappel je suis un debutant dans le domaine
alors franchement un grand merci.

cordialement,
dionysos6868 Messages postés 310 Date d'inscription jeudi 4 septembre 2003 Statut Membre Dernière intervention 9 juin 2005 1
31 mai 2005 à 07:41
ca serais super simpa merci beaucoup
NicolasLight Messages postés 5 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 18 novembre 2005
30 mai 2005 à 08:46
Tout est possible en programmation.
Je vais essayer de préparer un ptit truc pour répondre à ta question.
Je dois seulement chercher car je ne connais pas la réponse comme ça, dsl.
Mais promis, dès que je trouve, je le poste ici.
dionysos6868 Messages postés 310 Date d'inscription jeudi 4 septembre 2003 Statut Membre Dernière intervention 9 juin 2005 1
28 mai 2005 à 11:19
Bonjour

je voudrais savoir si il est possible de faire transmettre un video en stream pris d'une web cam ????

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.