客户端代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.Text; namespace UDPTest { public partial class Form1 : Form { private UdpClient udpSend; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { udpSend = new UdpClient(); udpSend.EnableBroadcast = true;//是否可以发送和接收广播 IPEndPoint iep = new IPEndPoint(IPAddress.Parse("224.100.0.10"), 8001); byte[] data = Encoding.UTF8.GetBytes(richTextBox1.Text); udpSend.Send(data, data.Length, iep); richTextBox1.Clear(); } } }
服务端代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; namespace UDPTest2 { public partial class Form1 : Form { UdpClient udpReceive; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { } private void Form1_Load(object sender, EventArgs e) { byte[] data = null; udpReceive = new UdpClient(8001); udpReceive.JoinMulticastGroup(IPAddress.Parse("224.100.0.10"), 50);//添加到多路广播组,50为路由器跳数 IPEndPoint iep = new IPEndPoint(IPAddress.Any, 0); while (true) { data = udpReceive.Receive(ref iep); string str = Encoding.UTF8.GetString(data, 0, data.Length); MessageBox.Show(iep.ToString() + ":" + str); } } } }