首页 / C# / c# socket udp广播
c# socket udp广播
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# socket udp广播,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2230字,纯文字阅读大概需要4分钟。
内容图文
![c# socket udp广播](/upload/InfoBanner/zyjiaocheng/1228/7a0a5d2c1b614fc4aec0a3892a2ddc6c.jpg)
一、广播消息
由于Tcp是有连接的,所以不能用来发送广播消息。发送广播消息,必须用到Udp,Udp可以不用建立连接而发送消息。广播消息的目的IP地址是一种特殊IP地址,称为广播地址。广播地址由IP地址网络前缀加上全1主机后缀组成,如:192.168.1.255是192.169.1.0这个网络的广播地址;130.168.255.255是130.168.0.0这个网络的广播地址。向全部为1的IP地址(255.255.255.255)发送消息的话,那么理论上全世界所有的联网的计算机都能收得到了。但实际上不是这样的,一般路由器上设置抛弃这样的包,只在本地网内广播,所以效果和向本地网的广播地址发送消息是一样的。
利用udp广播可以实现像cs中建立服务器后,客户端可以收到服务器消息从而进行连接。
二、服务端
开启线程不断广播自己ip地址等信息,等待客户端接收
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Net; 6 using System.Net.Sockets; 7 using System.Threading; 8 using System.Threading.Tasks; 9 10 namespace scoket_udp_服务器 11 { 12 class Program 13 { 14 private static Socket sock; 15 private static IPEndPoint iep1; 16 private static byte [] data; 17 static void Main(string[] args) 18 { 19 sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 20 ProtocolType.Udp); 21//255.255.255.25522 iep1 = 23new IPEndPoint(IPAddress.Broadcast, 9050); 2425string hostname = Dns.GetHostName(); 26 data = Encoding.ASCII.GetBytes(hostname); 2728 sock.SetSocketOption(SocketOptionLevel.Socket, 29 SocketOptionName.Broadcast, 1); 3031 Thread t = new Thread(BroadcastMessage); 32 t.Start(); 33//sock.Close();3435 Console.ReadKey(); 3637 } 3839privatestaticvoid BroadcastMessage() 40 { 41while (true) 42 { 43 sock.SendTo(data, iep1); 44 Thread.Sleep(2000); 45 } 4647 } 4849 } 50 }
三、客户端
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Net; 6 using System.Net.Sockets; 7 using System.Threading.Tasks; 8 9 namespace socket客户端udp 10 { 11 class Program 12 { 13 static void Main(string[] args) 14 { 15 Socket sock = new Socket(AddressFamily.InterNetwork, 16 SocketType.Dgram, ProtocolType.Udp); 17 IPEndPoint iep = 18new IPEndPoint(IPAddress.Any, 9050); 19 sock.Bind(iep); 20 EndPoint ep = (EndPoint)iep; 21 Console.WriteLine("Ready to receive…"); 2223byte[] data = newbyte[1024]; 24int recv = sock.ReceiveFrom(data, ref ep); 25string stringData = Encoding.ASCII.GetString(data, 0, recv); 2627 Console.WriteLine("received: {0} from: {1}", 28 stringData, ep.ToString()); 29 sock.Close(); 3031 Console.ReadKey(); 32 } 33 } 34 }
原文:http://www.cnblogs.com/zhangbaochong/p/4944894.html
内容总结
以上是互联网集市为您收集整理的c# socket udp广播全部内容,希望文章能够帮你解决c# socket udp广播所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。