1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| // Déclaration des variables
int port_serveur;
EndPoint sock_serveur;
IPAddress[] addr_ip_serveur;
IPHostEntry host_serveur;
IPHostEntry host_client;
Socket sock;
string nom_serveur;
port_serveur= 4444;
// Nom de la machine
nom_serveur= Dns.GetHostName();
// Structure HOST du serveur
host_serveur= Dns.GetHostByName(nom_serveur);
// Liste des adresses IP du serveur
addr_ip_serveur= host_serveur.AddressList;
// Structure équivalente SOCKADDR_IN du serveur
sock_serveur= new IPEndPoint(addr_ip_serveur[0], port_serveur);
// Ouverture de la socket
sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.IP);
// Attachement à une adresse
sock.Bind(sock_serveur);
// En attente d'un message...
byte[] message_recu= new byte[256];
EndPoint sock_client;
// Creates an IPEndPoint to capture the identity of the sending host.
IPEndPoint client = new IPEndPoint(IPAddress.Any, 0);
sock_client = (EndPoint)client;
Console.WriteLine("*** Serveur lancé sur " + nom_serveur + "*** ");
while(true)
{
if( Console.ReadLine().Equals("quit"))
break;
sock.ReceiveFrom(message_recu, ref sock_client);
}
sock.Close(); |