1、发送方代码

void SendMsg(string toip, int port ){try{string message="发送内容";UdpClient udpclient = new UdpClient();IPEndPoint ipendpoint = new IPEndPoint(IPAddress.Parse(ip), port);              byte[] data = Encoding.Default.GetBytes(message);udpclient.Send(data, data.Length, ipendpoint);udpclient.Close();}catch (Exception ex){MessageBox.Show("UDP发送数据" + ex.ToString());}}

2、接收方代码

 public UdpService udp;a>实例化、初始化接收事件udp = new UdpService(fromip, 60000, "127.0.0.1", 60000);
udp.EvtGetValues+=new UdpService.GetRecevice(udp_EvtGetValues);b>启动UDPudp.TurnOn();c>停止UDPudp.TurnOff();d>接收事件处理void udp_EvtGetValues(byte[] ReceviceBuff){//string message = Encoding.UTF8.GetString(ReceviceBuff, 0, ReceviceBuff.Length);//可接收中文内容Encoding ei=Encoding.GetEncoding(936);string message = ei.GetString(ReceviceBuff, 0, ReceviceBuff.Length);if (message.Length > 0){// 处理接收逻辑
                }}

3、UdpService代码

 public  class UdpService{#region 内部变量string devIP = "127.0.0.1";int devPort = 60000;UdpClient mySocket;string meIP = "127.0.0.1";int mePort = 60000;IPEndPoint RemotePoint;bool isRunning = false;bool isOpen = false;List<Thread> listThread = new List<Thread>();       string icId = "";string cardContent = "";byte[] cardContentBuf;#endregionpublic UdpService(string ServerIP, int ServerPort, string DevIP, int DevPort){this.meIP = ServerIP;this.mePort = ServerPort;this.devIP = DevIP;this.devPort = DevPort;           }#region   public void TurnOn(){try{if (isOpen) return;mySocket = new UdpClient(mePort);IPEndPoint ipLocalPoint = new IPEndPoint(IPAddress.Parse(meIP), mePort);RemotePoint = new IPEndPoint(IPAddress.Any, devPort);isRunning = true;Thread thread = new Thread(new ThreadStart(this.ReceiveHandle));thread.IsBackground = true;thread.Start();listThread.Add(thread);isOpen = true;}catch (Exception ex){isOpen = false;throw new Exception(ex.Message);}}public void TurnOff(){try{isOpen = false;isRunning = false;for (int i = 0; i < listThread.Count; i++){try{listThread[i].Abort();}catch (Exception) { }}if (mySocket != null){mySocket.Close();}}catch (Exception){}}public delegate void GetRecevice(byte[] ReceviceBuff);public event GetRecevice EvtGetValues;private void ReceiveHandle(){byte[] sendbuf = new byte[9];byte[] sendwritbuf = new byte[200];while (isRunning){try{if (mySocket == null || mySocket.Available < 1){Thread.Sleep(300);continue;}//接收UDP数据报,引用参数RemotePoint获得源地址  byte[] buf = mySocket.Receive(ref RemotePoint);if (devIP == null || devIP.Length < 1){devIP = RemotePoint.Address.ToString();devPort = RemotePoint.Port;}if (EvtGetValues != null){EvtGetValues(buf);}}catch (Exception){}}}#endregion}

转载于:https://www.cnblogs.com/lzsin/p/10868814.html

C# UDP通讯实例相关推荐

  1. [python学习] 专题七.网络编程之套接字Socket、TCP和UDP通信实例

    很早以前研究过C#和C++的网络通信,参考我的文章:                  C#网络编程之Tcp实现客户端和服务器聊天                 C#网络编程之套接字编程基础知识   ...

  2. 欧姆龙OMRON PLC之HostLink通讯协议(五)- CP1H以太网FINS/TCP通讯实例

    //写在前面: 自2010年起,本人陆续在新浪博客上面发了几篇OMRON PLC的应用笔记,曾经很疑惑阅读量异常增加,后来发现原来是这里有人转载.现将原文照发在这里,希望能帮到做工控的同行朋友们. C ...

  3. 【转】欧姆龙OMRON PLC之 CP1H 以太网FINS/TCP通讯实例

    原文:http://blog.sina.com.cn/s/blog_539cee190102wr4t.html CP1H上面的选件板插槽可以插入1-2块CP1W-CIF41模块,系统即具有了以太网功能 ...

  4. NET中winform与webform互相通讯实例,CS调用BS页面的JS函数---转载

    原创:.NET中winform与webform互相通讯实例,CS调用BS页面的JS函数 时间:2009-12-11 21:09:32 来源:原创 作者:dodo - - 现在C#越来越多朋友使用了,大 ...

  5. LWIP裸机环境下实现TCP与UDP通讯(转)

    源: LWIP裸机环境下实现TCP与UDP通讯

  6. 基于Delphi API写的UDP通讯类

    转载地址:http://www.codefans.net/articles/159.shtml 基于Delphi API写的UDP通讯类,可以广播和单播,类作者:王彦鹏.这个类是作者2007年的时候写 ...

  7. LWIP裸机环境下实现TCP与UDP通讯

    前面移植了LWIP,并且简单的实用了DHCP的功能,今天来使用一下实际的数据通讯的功能 首先是实现TCP客户端,我先上代码 #ifndef __TCP_CLIENT_H_ #define __TCP_ ...

  8. linux系统udp通信程序,Linux UDP socket编程(UDP通讯模型) | C/C++程序员之家

    Linux UDP socket编程(UDP通讯模型): UDPClient + UDPService. Linux下大多数网络程序都是基于TCP的,很少基于UDP,简单的通讯模型如下,开发时候备用! ...

  9. readfile读取串口数据_西门子PLC-1200-串口Modbus RTU通讯实例

    西门子PLC-1200的基于232串口的Modbus RTU通讯实例 这里先讲一下Modbus和232,232和485串口是一种串口接法,这种接法实际能实现十几种的协议通讯,有基于串口的Modbus ...

  10. C#UDP通讯UdpClient

    目录(?)[+] 遇到如下两个问题 远程主机强迫关闭了一个现有的连接的错误 [html] view plaincopy print? class UdpClientClass { /// <su ...

最新文章

  1. 在存储过程中如何实现将ID列表字符串传入IN()
  2. 数据结构-王道2017-第3章 栈和队列-队列
  3. sql instr()与LOCATE()字符串查找函数
  4. 换了路由器电脑都连不上网了_路由器连不上网怎么办
  5. 多线程, 注入spring 服务
  6. 深入理解缓存系统|单机QPS突破千万优化之路
  7. P2146 [NOI2015] 软件包管理器
  8. 【Python 标准库学习】容器数据类型库 — collections
  9. 杨辉三角java代码_【LeetCode】118. 杨辉三角(Pascal#x27;s Triangle)解题思路
  10. Python:list数组元素同一转换类型
  11. 拓端tecdat|如何在R语言中建立六边形矩阵热图heatmap可视化
  12. 【Java 多线程 8】同步容器与并发容器
  13. ImportError: Missing required dependencies [‘pytz‘]
  14. 微信淘宝客机器人分享
  15. android 实现广告弹窗,Android实现自适应屏幕的弹窗广告
  16. Netty in Action 中文版 --最贴近原著的翻译
  17. 什么是全屋定制家居概念?
  18. poj2249Binomial Showdown
  19. 支付宝将推出免费WiFi
  20. 进制转换的算法及进制在线转换器

热门文章

  1. springboot整合mybatis源码分析
  2. delphi2006语言新特性:Record类型高级用法
  3. kubernetes挂载ceph rbd和cephfs的方法
  4. 用.htaccess禁止某IP访问
  5. UITableView+UITableViewStyleGrouped 处理section之间间隙
  6. 桌面支持--outlook会议邀请(选择可选参加的领导)
  7. struts+spring action应配置为scope=prototype
  8. AngularJS开发指南10:AngularJS依赖注入的详解
  9. ubuntu 14.04 32bit依赖库解决
  10. [WebApi] 捣鼓一个资源管理器--数据库辅助服务器文件访问