Работа с протоколом 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();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5