Envoyer un message sur l'adresse de diffusion du réseau. [Résolu]

Si R 3 Messages postés jeudi 23 juin 2005Date d'inscription 10 juillet 2005 Dernière intervention - 3 juil. 2005 à 23:22 - Dernière réponse : jolapeste 2 Messages postés mardi 30 octobre 2007Date d'inscription 13 décembre 2009 Dernière intervention
- 7 janv. 2009 à 11:17
Mon but est d'envoyer un message à l'adresse de diffusion pour que tous
les ordi du réseaux le reçoivent, y répondent et que par la suite
s'enclenche un processus d'ajout de ces différent ordi à la liste des
ordinateurs sur le réseaux. C'est dans le cadre d'une apli de
communication réseaux. Pour le moment je suis obligé d'ajouter
manuellement chaque ordinateurs en saisissant leurs adresses IP, et je
souhaite que ça se fasse automatiquement.



Mais le problème, c'est que j'utilise des Sockets et qu'il me refuse la connexion à l'adresse de diffusion (192.168.0.255).



Peut on envoyer un message à une adresse sans s'y connecter ?



Tout autre méthode permettant le meme résultat est la bien venu !!!



Merci d'avance !!!




Afficher la suite 

3 réponses

Répondre au sujet
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 4 juil. 2005 à 09:15
+3
Utile
voici comment je procède :

Pour envoyer un message :

System
.Net
.IPAddress localAddress
= Dns
.GetHostByName(SystemInformation
.ComputerName)
.AddressList[
0];

int mcastPort
=
9999;
System
.Net
.IPAddress mcastAddress
= IPAddress
.Parse(
"224.168.100.2");
Socket mSocket
=
new Socket(AddressFamily
.InterNetwork,
SocketType
.Dgram,
ProtocolType
.Udp);
IPAddress localIP
= localAddress;
IPEndPoint localEP
=
new IPEndPoint(localIP,
0);
mSocket
.Bind(localEP);

MulticastOption option
=
new MulticastOption(mcastAddress, localIP);
mSocket
.SetSocketOption(
SocketOptionLevel
.IP,
SocketOptionName
.AddMembership,
option);

try {
EndPoint ep
=
new IPEndPoint(mcastAddress, mcastPort);
mSocket
.SendTo(System
.Text
.UnicodeEncoding
.Unicode
.GetBytes(message
.ToString()), ep);
}
catch (Exception ex) {
MessageBox
.Show(ex
.Message);
}
mSocket
.Close();

Pour écouter :


if(
!SystemInformation
.Network)

return;

bool done
=
false;

byte[] bytes
=
new
byte[
256];
IPEndPoint groupEP
=
new IPEndPoint(mcastAddress, mcastPort);
EndPoint remoteEP
= (EndPoint)
new IPEndPoint(IPAddress
.Any,
0);

mcastSocket
=
new Socket(AddressFamily
.InterNetwork,
SocketType
.Dgram, ProtocolType
.Udp);

IPAddress localIP
= localAddress;
EndPoint localEP
= (EndPoint)
new IPEndPoint(localIP, mcastPort);

mcastSocket
.Bind(localEP);
mcastOption
=
new MulticastOption(mcastAddress, localIP);
mcastSocket
.SetSocketOption(
SocketOptionLevel
.IP,
SocketOptionName
.AddMembership,
mcastOption);

try {

string _msg;

while(
!done) {
mcastSocket
.ReceiveFrom(bytes,
ref remoteEP);

_msg
= System
.Text
.Encoding
.Unicode
.GetString(bytes,
0,bytes
.Length);

if (
this.BCMsgEvent
!=
null) {
BCMsgEventArgs e
=
new BCMsgEventArgs(_msg);

this.BCMsgEvent(
this, e);
}
}
mcastSocket
.Close();
}
catch {
//(/*Exception ex*/) {

// MessageBox.Show(this, ex.Message,this.Text,

// MessageBoxButtons.OK, MessageBoxIcon.Warning);
}


<HR>
Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de sebmafate
Si R 3 Messages postés jeudi 23 juin 2005Date d'inscription 10 juillet 2005 Dernière intervention - 10 juil. 2005 à 21:20
0
Utile
Merci !!!
Commenter la réponse de Si R
jolapeste 2 Messages postés mardi 30 octobre 2007Date d'inscription 13 décembre 2009 Dernière intervention - 7 janv. 2009 à 11:17
0
Utile
bonjour, j'ai un projet de fin d'étude qui inclut l'envoi de messages sous réseau wifi
j voudrai bien savoir kel est l code qui permet d'envoyer un msg à un utilisateur précis
j signale que je développe pour le mobile device sous C#
merci
Commenter la réponse de jolapeste

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.