C# UDP收发请求工具类
2016-06-16 17:42
387 查看
初始化:
监听:
发送:
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# 多线程是否结束可通过线程池可以判断
- VS2015中C#版本6.0的新特性 你需要知道
- C#中lambda表达式浅析
- C#中数组、ArrayList和List三者的区别
- [置顶] C# 如何利用反射,将字符串转化为类名并调用类中方法
- 自定义热键的代码(C#)
- C#套接字Socket编程之最简单通信
- C# DateTime 格式化 奇怪问题!
- C# TransactionScope 使用
- C#导出Excel
- C#复习④
- C# 设置鼠标指针
- C#虚基类继承与接口的区别
- C#中实体集合和实体转换成相应的string、XDocument、XElement
- C#复习③
- c# 多态的美丽(虚方法、抽象、接口实现)
- C# 多线程的自动管理(线程池) 基于Task的方式
- C# 时间戳
- c# 读取xml
- C#定时执行程序