C#利用广播实现群发功能

转载 2013年12月06日 08:21:18

C#利用广播实现群发功能

[csharp] view plaincopy
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Text;  
  7. using System.Windows.Forms;  
  8. //添加的命名空间引用  
  9. using System.Net;  
  10. using System.Net.Sockets;  
  11. using System.Threading;  
  12. namespace BroadcastExample  
  13. {  
  14.     public partial class FormBroacast : Form  
  15.     {  
  16.         delegate void AppendStringCallback(string text);  
  17.         AppendStringCallback appendStringCallback;  
  18.         //使用的接收端口号  
  19.         private int port = 8001;  
  20.         private UdpClient udpClient;  
  21.         public FormBroacast()  
  22.         {  
  23.             InitializeComponent();  
  24.             appendStringCallback = new AppendStringCallback(AppendString);  
  25.         }  
  26.   
  27.         private void FormBroacast_Load(object sender, EventArgs e)  
  28.         {  
  29.             Thread myThread = new Thread(ReceiveData);  
  30.             //将线程设为后台运行  
  31.             myThread.IsBackground = true;  
  32.             myThread.Start();  
  33.         }  
  34.   
  35.         
  36.         /// <summary>  
  37.         /// 在后台运行的接收线程  
  38.         /// </summary>  
  39.         private void ReceiveData()  
  40.         {  
  41.             //在本机指定的端口接收  
  42.             udpClient = new UdpClient(port);  
  43.             IPEndPoint remote = null;  
  44.             //接收从远程主机发送过来的信息;  
  45.             while (true)  
  46.             {  
  47.                 try  
  48.                 {  
  49.                     //关闭udpClient时此句会产生异常  
  50.                     byte[] bytes = udpClient.Receive(ref remote);  
  51.                     string str = Encoding.UTF8.GetString(bytes, 0, bytes.Length);  
  52.                     AppendString(string.Format("来自{0}:{1}", remote, str));  
  53.                 }  
  54.                 catch  
  55.                 {  
  56.                     //退出循环,结束线程  
  57.                     break;  
  58.                 }  
  59.             }  
  60.         }  
  61.   
  62.         /// <summary>  
  63.         /// 发送消息  
  64.         /// </summary>  
  65.         /// <param name="sender"></param>  
  66.         /// <param name="e"></param>  
  67.         private void buttonSend_Click(object sender, EventArgs e)  
  68.         {  
  69.             UdpClient myUdpClient = new UdpClient();  
  70.             try  
  71.             {  
  72.                 //让其自动提供子网中的IP广播地址  
  73.                 IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast, 8001);  
  74.                 //将发送内容转换为字节数组  
  75.                 byte[] bytes =Encoding.UTF8.GetBytes(textBox1.Text);  
  76.                 //向子网发送信息  
  77.                 myUdpClient.Send(bytes, bytes.Length, iep);  
  78.                 textBox1.Clear();  
  79.                 textBox1.Focus();  
  80.             }  
  81.             catch (Exception err)  
  82.             {  
  83.                 MessageBox.Show(err.Message, "发送失败");  
  84.             }  
  85.             finally  
  86.             {  
  87.                 myUdpClient.Close();  
  88.             }  
  89.         }  
  90.          
  91.         private void FormBroacast_FormClosing(object sender, FormClosingEventArgs e)  
  92.         {  
  93.             udpClient.Close();  
  94.         }  
  95.   
  96.         private void AppendString(string text)  
  97.         {  
  98.             if (richTextBox1.InvokeRequired == true)  
  99.             {  
  100.                 this.Invoke(appendStringCallback, text);  
  101.             }  
  102.             else  
  103.             {  
  104.                 richTextBox1.AppendText(text + "\r\n");  
  105.             }  
  106.         }  
  107.     }  
  108. }  

界面设计:


 

相关文章推荐

C#利用广播实现群发功能

C#利用广播实现群发功能 using System; using System.Collections.Generic; using System.ComponentModel; using Sys...

ASP.NET 实现站内信功能(点对点发送,管理员群发)

正好这段时间在研究这个功能,还是得感谢这位大神,没有他的引路,我就不可能把站内信做出来。 http://www.cnblogs.com/grenet/archive/2010/03/08/16806...

java实现短信群发功能

首先去http://www.smschinese.cn/上下载jar包以及注册用户,然后调用api接口,取得秘钥 ‘ 1. ASP 调用例子 ...

java实现短信群发功能

首先去http://www.smschinese.cn/上下载jar包以及注册用户,然后调用api接口,取得秘钥 ‘ 1. ASP 调用例子 '常用函数 '输入url目标网页地址,返...

Android下实现短信群发功能

短信群发与短信单发的区别在于群发时同一个内容可以对应多个目标手机号码,而单发一次只能有一个目标手机号码;当然我们也可用使用单发的形式来实现短信的群发,这样做的结果可能就是所发的短信条数比较多,还有就是...

短信群发 功能实现

  • 2013年06月28日 16:38
  • 3KB
  • 下载

javaMail实现邮件发送,群发功能

邮件系统很简单哦,只有下面两个类:  MailBean 和 SendMailOnTime  需要jar组件:  activation.jar  mail.jar  log4j.jar  ...

C#实现QQ群成员列表导出及邮件群发之模拟QQ登陆

前言 本文的重要部分: 1、抓包获取QQ空间或者邮箱登陆地址,分析参数,用户名,密码,验证码,gtk,随即数。 2、获取每次登陆需要的验证码 3、用户名,密码,验证码加密得到登...

c#微信公众平台开发之模拟登陆实现群发(WPF)

微信公众平台开发之模拟登陆实现群发    近来闲着无聊,正在学习WPF的过程中,刚好手头正有一个WeiXin公众平台开发项目,于是利用了WPF写了一个模拟登陆然后可以进行群发图文...

C#实现微信公众号群发消息(解决一天只能发一次的限制)实例分享

总体思路: 1.首先必须要在微信公众平台上申请一个公众号。 2.然后进行模拟登陆。(由于我对http传输原理和编程不是特别懂,在模拟登陆的地方,不是特别清楚,希望有大神指教) 3.模拟登陆后会获...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#利用广播实现群发功能
举报原因:
原因补充:

(最多只允许输入30个字)