下载贤集网APP入驻自媒体
本文实例讲述了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);}}复制代码