Прежде всего, извините, если решение этой проблемы уже есть.
У меня есть UDP-сервер в масштабе, который подключен к сети. Он прослушивает любые данные, отправляемые ему, и отвечает данными обратно клиенту, в зависимости от того, какая команда ему отправлена. Я смог проверить это с помощью YAT, программного обеспечения, используемого для проверки последовательной связи.
Тестирование UDP-соединения на YAT
Я хочу создать консольное приложение C # (.NET Core), которое делает то же самое. По сути, я хочу подключиться к UDP-серверу (масштабировать), отправлять ему команды и получать с него данные. Но, похоже, это не работает на принимающей стороне.
static void Main(string[] args)
{
var ipAddress = "10.130.12.81";
var portNumber = 2102;
var ipEndPoint = new IPEndPoint(IPAddress.Parse(ipAddress), portNumber);
try
{
var client = new UdpClient();
client.Connect(ipEndPoint);
if (client != null)
{
var weigh = "\nW\r";
var data = Encoding.ASCII.GetBytes(weigh);
client.Send(data, data.Length);
var receivedData = client.Receive(ref ipEndPoint);
Console.WriteLine($"Received Data: {receivedData}");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
Когда я запускаю код, он может соединяться и отправлять данные, но бездействует на клиенте. Получать строку, ожидая отправки сообщения.
Любые предложения будут полезны. Я не работал ни с чем, связанным с UDP-клиентами и серверами UDP, и это моя первая попытка.
[4/22/19]
На этот раз я создал 2 консольных приложения.
Отправитель
static void Main(string[] args)
{
var udpClient = new UdpClient();
var ipEndPoint = new IPEndPoint(IPAddress.Parse(_ipAddress), _port);
udpClient.Connect(ipEndPoint);
var msgSent = Encoding.ASCII.GetBytes("W\n");
udpClient.Send(msgSent, msgSent.Length);
}
Приемник
static void Main(string[] args)
{
var udpServer = new UdpClient(2102);
var ipEndPoint = new IPEndPoint(IPAddress.Any, _port);
var msgReceived = udpServer.Receive(ref ipEndPoint);
Console.Write("received data from: " + ipEndPoint.ToString());
}
Я пытался запускать и отправлять сообщения несколько раз, но безуспешно. Не уверен, что я что-то упустил .. Я буду продолжать разбираться с этим. Если это не сработает, я попробую использовать класс Socket вместо UdpClient.