zoukankan      html  css  js  c++  java
  • C#实现的UDP收发请求工具类实例

    本文实例讲述了C#实现的UDP收发请求工具类。分享给大家供大家参考,具体如下:

    初始化:

    ListeningPort = int.Parse(ConfigurationManager.AppSettings["ListeningPort"]);

    SendingPort = int.Parse(ConfigurationManager.AppSettings["SendingPort"]);

    SendingIp = ConfigurationManager.AppSettings["SendingIp"];

    复制代码

    监听:

    public static void Listen()

    {

    Task.Run(() =>

    {

    var done = false;

    var listener = new UdpClient(ListeningPort);

    var groupEP = new IPEndPoint(IPAddress.Any, ListeningPort);

    string received_data;

    byte[] receive_byte_array;

    try

    {

    _log.Error("############Service started###########");

    while (true)

    {

    receive_byte_array = listener.Receive(ref groupEP);

    Console.WriteLine("Received a broadcast from {0}", groupEP.ToString());

    received_data = Encoding.UTF8.GetString(receive_byte_array, 0, receive_byte_array.Length);

    ParseCommand(received_data);

    }

    }

    catch (Exception e)

    {

    _log.Error(e);

    Console.WriteLine(e.ToString());

    }

    _log.Error("############Service stopped###########");

    });

    }

    复制代码

    发送:

    public static void SendCommand(string xmlCmd)

    {

    try

    {

    var sending_socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

    var sending_end_point = new IPEndPoint(IPAddress.Parse(SendingIp), SendingPort);

    var send_buffer = Encoding.UTF8.GetBytes(xmlCmd);

    sending_socket.SendTo(send_buffer, sending_end_point);

    _log.Info("[COMMAND SENT] : " + xmlCmd);

    }

    catch (Exception ex)

    {

    _log.Error(ex);

    }

    }

    复制代码

    (编辑:雷林鹏 来源:网络)

  • 相关阅读:
    js获取当前日期
    Mysql错误1452
    数字输入框禁止输入字母
    laravel关联外键报错
    golang for range channel
    golang实现简单哈希表(拉链法解决冲突)
    K个一组反转链表(golang)
    golang 少见的语法问题(无用)
    golang实现循环队列
    数组中连续序列和最大值(循环数组)
  • 原文地址:https://www.cnblogs.com/pengpeng1208/p/9283068.html
Copyright © 2011-2022 走看看