Bonsoir à toutes et à tous,
j'écris un serveur en utilisant UDP comme protocole. C'est une application C# destinée à etre utilisée en Console. J'ai donc une boucle ou j'attend qu'un client m'envoie un message pour le traiter, seulement j'aimerais bien récupérer l'IP du client? Es-ce possible?
Voici le code que j'ai pour l'instant :
Je récupère donc les données du client dans sock_client, mais comment puis-je avoir son IP?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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();
Merci d'avance![]()
Partager