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