C#利用广播实现群发功能
2012-08-31 15:44
363 查看
C#利用广播实现群发功能
界面设计:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; //添加的命名空间引用 using System.Net; using System.Net.Sockets; using System.Threading; namespace BroadcastExample { public partial class FormBroacast : Form { delegate void AppendStringCallback(string text); AppendStringCallback appendStringCallback; //使用的接收端口号 private int port = 8001; private UdpClient udpClient; public FormBroacast() { InitializeComponent(); appendStringCallback = new AppendStringCallback(AppendString); } private void FormBroacast_Load(object sender, EventArgs e) { Thread myThread = new Thread(ReceiveData); //将线程设为后台运行 myThread.IsBackground = true; myThread.Start(); } /// <summary> /// 在后台运行的接收线程 /// </summary> private void ReceiveData() { //在本机指定的端口接收 udpClient = new UdpClient(port); IPEndPoint remote = null; //接收从远程主机发送过来的信息; while (true) { try { //关闭udpClient时此句会产生异常 byte[] bytes = udpClient.Receive(ref remote); string str = Encoding.UTF8.GetString(bytes, 0, bytes.Length); AppendString(string.Format("来自{0}:{1}", remote, str)); } catch { //退出循环,结束线程 break; } } } /// <summary> /// 发送消息 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonSend_Click(object sender, EventArgs e) { UdpClient myUdpClient = new UdpClient(); try { //让其自动提供子网中的IP广播地址 IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast, 8001); //将发送内容转换为字节数组 byte[] bytes =Encoding.UTF8.GetBytes(textBox1.Text); //向子网发送信息 myUdpClient.Send(bytes, bytes.Length, iep); textBox1.Clear(); textBox1.Focus(); } catch (Exception err) { MessageBox.Show(err.Message, "发送失败"); } finally { myUdpClient.Close(); } } private void FormBroacast_FormClosing(object sender, FormClosingEventArgs e) { udpClient.Close(); } private void AppendString(string text) { if (richTextBox1.InvokeRequired == true) { this.Invoke(appendStringCallback, text); } else { richTextBox1.AppendText(text + "\r\n"); } } } }
界面设计:
相关文章推荐
- C#利用广播实现群发功能
- c# UDP通过广播实现群发功能
- c# UDP通过广播实现群发功能
- c# UDP通过广播实现群发功能
- 利用C#中ToolStirp中的ComboBox控件实现下拉菜单改变文档字体的功能
- 利用广播实现强制下线功能
- java翻译到mono C#实现系列(4) 利用CountDownTimer类实现倒计时功能 mono版
- 利用广播实现强制下线功能
- c#利用反射,实现将model类变成字符串、再还原成mode对象的功能
- C#利用word书签实现模板打印功能
- unix网络编程之利用select 实现群发的功能
- 广播的巧妙利用——仿QQ实现强制下线功能
- 利用java实现邮箱群发功能
- C#学习之利用泛型实现列表功能
- C#利用Zxing.net生成条形码和二维码并实现打印的功能
- c++利用指针实现C#字典的功能
- C#利用组播实现网络会议室功能(即群聊功能)
- C#利用反射实现(js)Eval,asp(Execute)功能 动态执行类库中的函数
- C#下利用正则表达式实现字符串搜索功能的方法(转)
- c# wpf 利用截屏键实现截屏功能