Клиент-Сервер на UDP. Работающий - C#
Формулировка задачи:
Всем привет, я в C# недавно.
Есть готовый клиент сервер на ЮДП. Отправляет только одно сообщение и на этом все.
Мне надо что-бы и сервер смог отправить ответное сообщение. Я сам не смог сделать.
Посмотрите может у кого есть идеи.
Я не говорю чтобы за меня сделали что-то. Просто прощу объяснить кому не трудно.
Заранее благодарю.
Вот сервер:
using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; namespace udp_chat__ { class Program { static void Main(string[] args) { try { // Создаем UdpClient UdpClient udpClient = new UdpClient(5001); // Создаем переменную IPEndPoint, чтобы передать ссылку на нее в Receive() IPEndPoint RemoteIPEndPoint = null; // Получение данных byte[] bytes = udpClient.Receive(ref RemoteIPEndPoint); string results = Encoding.UTF8.GetString(bytes); Console.WriteLine(results); Console.ReadKey(); // Закрываем соединение udpClient.Close(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } } }
using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; namespace udp_chat { class Program { static void Main(string[] args) { IPAddress ipAddr = IPAddress.Parse("127.0.0.1"); try { // Создаем UdpClient UdpClient udpClient = new UdpClient(); // Соединяемся с удаленным хостом udpClient.Connect(ipAddr, 5001); // Отправка простого сообщения byte[] bytes = Encoding.UTF8.GetBytes("Test"); udpClient.Send(bytes, bytes.Length); // Закрываем соединение udpClient.Close(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } } }
Решение задачи: «Клиент-Сервер на UDP. Работающий»
textual
Листинг программы
static void Main(string[] args) { int port = 5001; UdpClient server = null; try { server = new UdpClient(port); // Создаем переменную IPEndPoint, чтобы передать ссылку на нее в Receive() IPEndPoint remoteEP = null; // Получаем и отдаем сразу. Эхо сервер while(true) { byte[] bytes = server.Receive(ref remoteEP); server.Send(bytes, bytes.Length, remoteEP); string results = Encoding.UTF8.GetString(bytes); Console.WriteLine(remoteEP.ToString() + " отправил:" + results); if(results.ToLower().Equals("stop server")) break; } } catch (Exception ex) { } finally { if (server != null) server.Close(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д