RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Envoi d'un objet par sockets multicast

Forum : JSP ET SERVLET
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ JSP ET SERVLET

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGE : [1]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM JSP ET SERVLET

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
Yakurena
Nouveau membre
Inscrit : 29/06/2005
Messages : 15
Message
#137371
Posté le 01/07/07 à 21:11
Bonjour,

Je developpe actuellement une application dans laquelle j'utilise la communication réseau par sockets, avec le principe du multicast. Je pense avoir compris ce principe, et j'arrive à l'utiliser pour envoyer un message (chaine de caractères), avec le code suivant :

String msg = "Hello"; InetAddress group = InetAddress.getByName("228.5.6.7"); MulticastSocket s = new MulticastSocket(6789); s.joinGroup(group); DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(), group, 6789); s.send(hi);

Le problème qui se pose ici est que j'aurais besoin d'envoyer par la socket non pas une chaîne de caractères, mais un objet Java. Or je n'ai trouvé aucune méthode ou constructeur permettant d'encapsuler un objet dans le DatagramSocket (tous les constructeurs ne supportent apparemment qu'un tableau d'octets). J'ai vu que cela est possible par des simples sockets client-serveur, par un code ressemblant à :

Socket serveur = new Socket(adresse, port); OutputStream sortie = serveur.getOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(sortie); oos.writeObject(objet); oos.flush();

Mais je n'y ai pas trouvé d'équivalent dans le cas des sockets multicast. Quelqu'un connaîtrait-il une possibilité pour faire véhiculer des objets par des sockets multicast ?
Merci d'avance pour votre aide.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

ReaM
Superviseur :
- Java
Avatar de ReaM
Inscrit : 24/02/2005
Messages : 745
Message
#137545
Posté le 03/07/07 à 15:21
Je n'ai pas touché la moindre fois à l'objet Multicast malheureusement. Pourrais-tu me dire ce qu'il permet de faire de plus que le socket , même si je m'en doute un peu .
__________________________
Image
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne et personne ne sait pourquoi...

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

lovejava
Membre du club
Chef de projet(s) :
- Hughobot

Avatar de lovejava
Inscrit : 13/07/2004
Messages : 639
Message
#137550
Posté le 03/07/07 à 15:42
Salut
Il suffit d'utiliser la classe ByteArrayOutputStream comme stream de sortie. Ainsi, une fois l'objet écrit à l'aide la méthode writeObject(), tu peux récupérer un tableau d'octets grâce à la méthode toByteArray() du stream de base. Exemple:


InetAddress group = InetAddress.getByName("228.5.6.7"); MulticastSocket s = new MulticastSocket(6789); s.joinGroup(group); //écriture de l'objet ByteArrayOutputStream sortie = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(sortie); oos.writeObject(objet); oos.flush(); byte donnees[] = sortie.toByteArray(); //on récupère les données binaires écrites DatagramPacket hi = new DatagramPacket(donnees, donnees.length, group, 6789); s.send(hi);


inutile de préciser que cette méthode pose parfois des problèmes de portabilité au niveau des versions des classes (il faut que la classe de l'objet sérialisé soit identique des deux côtés).

ReaM : si je me rapelle bien le Multicast permet d'envoyer des données à un nombre très important de destinataires à la fois (un envoi multiple quoi) mais par UDP, qui est plus rapide mais moins "fiable" que TCP (pas d'accusés de réception des paquets et pas de contrôle sur l'ordre d'envoi et d'arrivé).
__________________________
Lorsque touts les arbres auront été coupés, Lorsque touts les animaux auront été chassés, Lorsque touts les poissons auront été pêchés;
Alors l'homme découvrira que l'argent ne se mange pas.
------ |_o/e _|a/a---------

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

bigguiz
Membre MP
Avatar de bigguiz
Inscrit : 27/07/2006
Messages : 235
Message
#137561
Posté le 03/07/07 à 16:33
Je crois avoir qu'un grand nombre de routeur ipv4 n'acceptent pas le multicast, en revanche le multicast est géré par tous les routeurs ipv6?
__________________________
Eoliennes et informatique sur freresguizmo

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM JSP ET SERVLET



    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.