Работа с протоколом UDP - C# (240539)

Узнай цену своей работы

Формулировка задачи:

Добрый день!!! Ситуация такая есть клиент и сервер работают по протоколу udp, я отправляю с клиентской части сообщение а сервер его получает проблем нет. А можно ли организовать так: я отправляю с клиента сообщение если сообщение дошло до сервера выдается сообщение что все в порядке если нет то через 5 секунд происходит повтор выполнения программы. У меня абсолютно ни каких идей нет. Заранее спасибо. Клиент
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("Введите текст для отправки"); 
string temp = 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); 
 
//разрешение широковещательного адреса 
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true); 
 
byte[] buffer = Encoding.ASCII.GetBytes(temp); 

//передаем данные 
s.SendTo(buffer, ipe); 
 
//закрываем сокет 
s.Close(); 
Console.ReadKey(); 
} 
} 
}

Решение задачи: «Работа с протоколом UDP»

textual
Листинг программы
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.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast,true);
 
//объеденяем сокет с параметрами
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
string data = "";
 
try
{
s.ReceiveFrom(buffer, ref EndRem);
data = Encoding.ASCII.GetString(buffer);
Console.WriteLine("Прием данных закончен");
 
//закрываем сокет
s.Close();
}
catch
{
 
???????????????????????????????
 
}
Console.WriteLine(data);
Console.ReadKey();
}
}
}

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


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

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

13   голосов , оценка 4 из 5