1.通讯类:
namespace AddMyUtility
{
    public class UDPClientClass
    {
public UDPClientClass(string groupIP, int Port, int timeOut)
        {
_UdpClient = new UdpClient(Port);
            _UdpClient.Client.ReceiveTimeout = timeOut;
            _UdpClient.JoinMulticastGroup(IPAddress.Parse(groupIP));
            _IPEndPoint = null;

        }
        public string _groupIP;
        public int _port;
        public int _timeOut;
        public  byte[] _Buffer;
        public UdpClient _UdpClient;
        public IPEndPoint _IPEndPoint;
        public byte[] ReceivThreadEvetHandler()
        {
try
            {
                byte[] buf = _UdpClient.Receive(ref _IPEndPoint);
                _Buffer = buf;
                return _Buffer;
            }
            catch
            {
return new byte[0];
            }
}
}
  
}
2.调用:
void ThirdUDPInit(string groupIP,int port,int timeOut)//第三组udp初始化
        {
this._udpClientClass = new UDPClientClass(groupIP, port, timeOut);
       
        }
public static string myAddGetIP()//获得主机IP
        {
            string strAddr = "";
            try
            {
                string strHostName = System.Net.Dns.GetHostName();
                System.Net.IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(strHostName);
                foreach (IPAddress _ipaddress in ipEntry.AddressList)
                {
                    if (_ipaddress.AddressFamily.ToString().ToLower() == "internetwork")
                    {
                        strAddr = _ipaddress.ToString();
                        break;
                    }
                }

            }
            catch (System.Exception e)
            {
}
return strAddr;
        }
void MsgRecvThread_1()//2016.12.15
        {
            try
            {
                string text;
                while (true)
                {
                    try
                    {
                        byte[] content = this._udpClientClass.ReceivThreadEvetHandler();
                        if (content.Length > 0)
                        {

                            text = DateTime.Now.ToString("[yyyy-MM-dd HH:mm:ss]")
                                 + "收到外部消息:"
                                 + System.Text.Encoding.Default.GetString(content);
                            CommandOutputWindow.Output(text, ScriptMessageType.Command);
                            CommandOutputWindow.Output(System.Environment.NewLine, ScriptMessageType.Command);
}
                    }
                    catch
                    { this._udpClientClass._UdpClient.Close();
                    this._udpClientClass._UdpClient = new UdpClient(_udpClientClass._port);
                    _udpClientClass._UdpClient.Client.ReceiveTimeout = _udpClientClass._timeOut;
                   _udpClientClass. _UdpClient.JoinMulticastGroup(IPAddress.Parse(_udpClientClass._groupIP));
                   _udpClientClass._IPEndPoint = null;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageOutputWindow.Output(ex.Message, ScriptMessageType.Error);
            }
        }
public void AddThread()//新加线程
        {
Thread th = new Thread(new ThreadStart(MsgRecvThread_1));
            th.Start();
       
        }

UDP通讯接收案例(组播方式)相关推荐

  1. 4高并发服务器:UDP局域网服务器(组播)

     1 UDP局域网服务器 A读出每一个客户端发送过来的数据包,然后fork出子进程,由子进程去处理客户端请求. B客户端与服务器段交换多个数据报,服务器为每一个客户端连接创建新的socket,在其 ...

  2. 基于UDP的多播(组播)文件传输

    此次的课程设计通过借鉴网上的信息(前人种树后人乘凉,感谢在网上分享的大佬们)然后自己再次修改调试完成. 步入正题吧 主要代码: public class MULTICAST {private Stri ...

  3. 网络编程-Socket套接字(TCP、UDP、广播和组播通信)

    socket套接字 socket是一个编程接口(网络编程接口) 作用是用来实现网络上不同的主机的应用进程之间进行双向通信 套接字是一种特殊的文件描述符 也就意味着我们使用套接字实现网络通信的时候可以用 ...

  4. windows无法接收到组播问题

    windows上组播接收异常的问题 应项目要求, 参与将一个设备发现服务从 linux 移植到 windows 上的过程, 设备发现服务通过加入特定的组播组,比如239.255.255.250,来监听 ...

  5. linux UDP实现广播和组播

    广播 广播很简单,原理不解释了,这里实现的重点在于: 1.对服务器端的套接字使用setsockopt函数开放广播权限 2.指定要发送的IP(广播地址)+端口号 3.客户端必须显式绑定端口号(和2的端口 ...

  6. 通过UDP的组播方式收发数据

    客户端代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data ...

  7. ios 接收 c# socket udp 组播

    最近用wcf 服务 给ios和安卓做接口,做了几个ios的项目  用udp 组播 让ios多终端接收和刷新方法 做一个简单的小例子会把工程给大家下载的 c#代码:netSocketUDP.rar io ...

  8. UDP通信多发多收(案例)和广播组播

    使用UDP通信方式开发接收端和发送端(模拟视频弹幕系统) 分析:发送端可以一直发送消息   接收端可以不断的接收多个发送端的消息展示     发送端输入exit则结束发送端程序 UDP的接收端为什么可 ...

  9. 组播vlan_【参与方式】耗时10小时编撰(下)带你轻松通关组播知识点!

    上周的技术贴主要为大家介绍了组播的基础架构以及IGMP的概念,相信大家也是意犹未尽,那么今天小老虎就为大家介绍IGMP Snooping工作机制以及组播动态路由选择协议,文末含有三八女神节活动的报名链 ...

最新文章

  1. Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~
  2. oracle 11g使用deferred_segment_creation 延迟段创建特性时遇到的问题总结
  3. 宁波大学计算机专业英语面试的形式,宁波大学信息学院计算机网络2014复试试题(回忆版)...
  4. Pandas库(1):DataFrame类
  5. 安装python3 及virtual与virtualenvwrapper
  6. 编写“线围棋”程序-2-可开局
  7. 春晚之后的采访和豆瓣投名状
  8. vue-cli目录结构解析
  9. 华为云PaaS梳理了客户可能上云的三类场景和七种解决方案
  10. ups容量计算和配置方法_山埔UPS电源后备时间计算方法
  11. Apache下域名虚拟主机在个人主页目录上实现过程
  12. 【日常】ICS的lab7攻略和最近生活的吐槽
  13. python100内的质数_python输出100以内的质数与合数
  14. 如何制作一个可控制的人体骨骼模型
  15. c语言unit id是什么,小程序再升级之什么是UnitionID
  16. 经纬度的多种格式和转换方式
  17. win10添加mysql8环境变量_win10下mysql8.0.12安装及环境变量配置教程
  18. Delphi图像处理 -- 彩色浮雕
  19. github标准pull request提交流程
  20. Ant Design of Vue - 让 Message 组件支持手动点击关闭

热门文章

  1. java 同类调用方法_JAVA中同类中方法的调用问题?
  2. python多核运行程序怎么关闭_在多核上运行程序
  3. android sdk引入 微信分享_微信分享sdk接入总结
  4. 把类成员改成指针_C++之this指针
  5. 织梦cms提交熊掌号php,织梦cms熊掌号历史数据提交教程
  6. jvm对于java的意义_谈谈对JVM的理解
  7. oracle创建表空间blocksize,oracle表空间大小的限制和DB_BLOCK_SIZE的概念
  8. 掌握AI核心技术没有秘籍,能自己创造就是王道
  9. java 界面位置_java界面中怎样设置位置
  10. jboss linux 性能,搭建jprofiler对jboss性能监控