好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

   }

}

希望本文所述对大家C#程序设计有所帮助。

dy("nrwz");

查看更多关于C#实现的UDP收发请求工具类实例的详细内容...

  阅读:42次