博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Udp广播的发送与接收(C#+UdpClient) 上篇
阅读量:6269 次
发布时间:2019-06-22

本文共 1762 字,大约阅读时间需要 5 分钟。

简介:

  Udp广播消息用在局域网的消息传递很方便。本文使用UdpClient类在WPF下实现Udp广播收发

发送:

1         void MainWindow_Loaded(object sender, RoutedEventArgs e) 2         { 3             Loaded -= MainWindow_Loaded; 4             UdpClient client = new UdpClient(new IPEndPoint(IPAddress.Any, 0)); 5             IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse("255.255.255.255"), 7788);//默认向全世界所有主机发送即可,路由器自动给你过滤,只发给局域网主机 6             String ip = "host:" + Dns.GetHostEntry(Dns.GetHostName()).AddressList.Last().ToString();//对外广播本机的ip地址 7             byte[] ipByte = Encoding.UTF8.GetBytes(ip); 8             DispatcherTimer dt = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(1) };//每隔1秒对外发送一次广播 9             dt.Tick += delegate10             {11                 client.Send(ipByte, ipByte.Length, endpoint);12             };13             dt.Start();14         }

接收:

1         void MainWindow_Loaded(object sender, RoutedEventArgs e) 2         { 3             Loaded -= MainWindow_Loaded; 4             UdpClient client = new UdpClient(new IPEndPoint(IPAddress.Any, 7788));//端口要与发送端相同 5             Thread thread = new Thread(receiveUdpMsg);//用线程接收,避免UI卡住 6             thread.IsBackground = true; 7             thread.Start(client); 8         } 9         void receiveUdpMsg(object obj)10         {11             UdpClient client = obj as UdpClient;12             IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 0);13             while (true)14             {15                 client.BeginReceive(delegate(IAsyncResult result) {16                     Console.WriteLine(result.AsyncState.ToString());//委托接收消息17                 }, Encoding.UTF8.GetString(client.Receive(ref endpoint)));18             }19         }

效果:

 

 

  

 
 

转载于:https://www.cnblogs.com/JimmyBright/p/4637090.html

你可能感兴趣的文章
macports的安装及常用命令
查看>>
(转)使用C#开发ActiveX控件
查看>>
spring mvc 基于注解 配置默认 handlermapping
查看>>
半小时学会上传本地项目到github
查看>>
Android学Jni/Ndk 开发记录(一)
查看>>
Linux Tcl和Expect的安装
查看>>
WPF中的依赖项属性(转)
查看>>
linux防火墙相关 iptables
查看>>
最简单的单例模式
查看>>
JPopupMenu的使用以及JPopupMenu中子组件的事件处理
查看>>
从反汇编的角度看引用和指针的区别
查看>>
拓马长枪定乾坤
查看>>
UIProgressView的详细使用
查看>>
Silverlight实用窍门系列:70.Silverlight的视觉状态组VisualStateGroup
查看>>
照片筛选与上传功能
查看>>
Hello ZED
查看>>
常见web攻击方式
查看>>
hdu 4472
查看>>
oracle存储过程中is和as区别
查看>>
windows 2003 群集
查看>>