Работа с протоколом UDP - C# (195261)
Формулировка задачи:
подскажите пожалуйста как сделать так чтобы сервер выводил IP адрес и номер порта отправителя при отправке сообщения
Сервер
Клиент
using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; namespace UDP_Serv { class Program { static void Main(string[] args) { Console.WriteLine("Введите номер порта?"); int port = int.Parse(Console.ReadLine()); //Создаем локальный сокет Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); //вводим необходимые параметры для локального сокета IPAddress ip = IPAddress.Any; IPEndPoint ipe = new IPEndPoint(ip, port); //объеденяем сокет с параметрами s.Bind(ipe); byte[] buffer = new byte[256]; //создаем структуру для удаленного сокета IPAddress ipRem = IPAddress.Any; int portRem = 0; IPEndPoint Rem = new IPEndPoint(ipRem, portRem); EndPoint EndRem = (EndPoint)Rem; Console.WriteLine("Ожидаем данные"); //прием данных //параметры удаленного сокета будут содержаться в EndRem s.ReceiveFrom(buffer, ref EndRem); string data = Encoding.ASCII.GetString(buffer); Console.WriteLine("Прием данных закончен"); //закрываем сокет s.Close(); Console.WriteLine(data); Console.ReadKey(); } } }
using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; namespace UDP_Client { class Program { static void Main(string[] args) { Console.WriteLine("Введите ip адрес"); string addr = Console.ReadLine(); Console.WriteLine("Введите номер порта?"); int port = int.Parse(Console.ReadLine()); Console.WriteLine("Нажмите любую кнопку для передачи данных"); Console.ReadKey(); //Создаем сокет Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); //вводим необходимые параметры для удаленного сокета //параметры для локального сокета определяются Операционной системой IPAddress ip = IPAddress.Parse(addr); IPEndPoint ipe = new IPEndPoint(ip, port); string temp = "hello!"; byte[] buffer = Encoding.ASCII.GetBytes(temp); //передаем данные s.SendTo(buffer, ipe); //закрываем сокет s.Close(); Console.WriteLine("Передача данных закончена"); Console.ReadLine(); } } }
Решение задачи: «Работа с протоколом UDP»
textual
Листинг программы
Rem.Address.ToString(); Rem.Port.ToString();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д