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

Messages postés
3
Date d'inscription
jeudi 23 juin 2005
Dernière intervention
10 juillet 2005
- 3 juil. 2005 à 23:22 - Dernière réponse :
Messages postés
2
Date d'inscription
mardi 30 octobre 2007
Dernière intervention
13 décembre 2009
- 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 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
- 4 juil. 2005 à 09:15
3
Merci
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

Merci sebmafate 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de sebmafate
Messages postés
3
Date d'inscription
jeudi 23 juin 2005
Dernière intervention
10 juillet 2005
- 10 juil. 2005 à 21:20
0
Merci
Merci !!!
Commenter la réponse de Si R
Messages postés
2
Date d'inscription
mardi 30 octobre 2007
Dernière intervention
13 décembre 2009
- 7 janv. 2009 à 11:17
0
Merci
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.