如何通过.NET Core控制台应用程序从UDP网络服务器发送和接收命令

时间:2019-04-19 21:11:24

标签: c# .net udp core

首先,对于已经解决此问题的方法感到抱歉。

我有一个连接到网络的UDP服务器,它是一个秤。它正在侦听发送给它的所有数据,并根据返回给客户端的命令将数据返回给客户端。我能够使用用于测试串行通讯的软件YAT对此进行测试。

Testing UDP Connection on 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 ip客户端和服务器相关的任何东西,这是我的第一次尝试。

[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。

0 个答案:

没有答案