Socket, envoyer autre chose que du texte?

Socket, envoyer autre chose que du texte? - C#/.NET managed - Programmation

Marsh Posté le 21-04-2006 à 11:54:04    

Bonjour,
 
Je suis actuellement en train de m'amuser à faire un mini serveur.
J'aimerais savoir s'il est possible d'envoyer au client connecté autre chose que du texte? [:alanou]
 
En fait, j'aimerais bien envoyer au client une arraylist qui contient des objets, c'est pour ça :D
 
Est-ce que vous savez comment je dois procéder? :D
 
Est-ce que je dois me faire mon propre protocole et du coté du client je recrée les objets? [:alarmclock1]
 
Merci ;)

Reply

Marsh Posté le 21-04-2006 à 11:54:04   

Reply

Marsh Posté le 21-04-2006 à 12:24:10    

Je ne vois pas de moyen simple. Tu peux t'amuser à envoyer le hashcode de ton objet, mais c'est risqué, et surtout ça t'interdit de rendre portable ton client (c'est généralement le but d'une appli client serveur : on a le serveur qui ne sait tourner que sur un OS, mais une floppée de clients pour chaque OS... le meilleur exemple étant les serveurs WEB)
Le mieux, de faire une méthode ToXML() de tes objets pour en retourner une représentation XML, avec des zones CDATA pour les éléments binaires.
Puis envoyer via ton socket le document XML contenant tous tes objets.
Côté client, tu reconstruit des objets à partir du XML (une bonne méthode "FormXML" ou une surcharge du constructeur n'est pas un luxe dans ce cas ;))


Message édité par Arjuna le 21-04-2006 à 12:26:24
Reply

Marsh Posté le 21-04-2006 à 13:58:55    

Merci beaucoup.
J'avais pensé à ça aussi mais, ca ne risque pas de surcharger un peu mon réseau? :D
 
Je n'ai jamais fait de WS, on peut réaliser quelque chose comme ça avec? ;)
Merci.

Reply

Marsh Posté le 21-04-2006 à 14:54:32    

Ce sera pareil (cf. mon topic à propos de ma déception des webservices)
 
Sinon, non, y'aura pas de syrcharge. Evidement, passer en XML risque de multiplier par 2 le traffic si tu transfères des petits objets, mais très franchement, à moins que tu n'envoies ces infos en très grandes quantités et vers beaucoup de clients à la fois, ça devrait aller. Imagine que c'est un site web, puisque c'est "à peut de chose près" le même système : tu peux tout à faire tranférer via le réseau une page très "sexy" en moins de 100 Ko, images comprises.

Reply

Marsh Posté le 21-04-2006 à 18:04:25    

Sinon, à l'ancienne, mais en utilisant la serialisation binaire -> array de byte dans le socket et hop ! [:ddr555]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed