Клиент-Сервер на 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();
}
}