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);

}

}

复制代码

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

原文地址:https://www.cnblogs.com/pengpeng1208/p/9283068.html