当前位置: 首页 > news >正文

天津做一个简单的网站首页江门seo网站

天津做一个简单的网站首页,江门seo网站,临沂做网站哪家好,dw建设网站视频本专题主要介绍下如何实现UDP广播的程序#xff0c;下面就直接介绍实现过程和代码以及运行的结果。 一、程序实现 UDP广播程序的实现代码#xff1a; using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using System.W… 本专题主要介绍下如何实现UDP广播的程序下面就直接介绍实现过程和代码以及运行的结果。 一、程序实现 UDP广播程序的实现代码   using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using System.Windows.Forms;namespace UDPBroadcast {/// summary/// 在界面上用户可以设置本地进程的IP地址和端口号并将地址加入某个组播组/// 可以输入发送消息的目的组的地址并且勾选“广播”复选框将采用广播的方式发送信息/// 在界面上点击“接受按钮”就启动接收线程这样程序就可以接收广播或组播的信息/// /summarypublic partial class UdpBroadcasefrm : Form{private UdpClient sendUdpClient;private UdpClient receiveUdpClient;// 组播IP地址IPEndPoint broadcastIpEndPoint;public UdpBroadcasefrm(){InitializeComponent();IPAddress[] ips Dns.GetHostAddresses(Dns.GetHostName());tbxlocalip.Text ips[5].ToString();tbxlocalport.Text 8002;// 默认组,组播地址是有范围// 具体关于组播和广播的介绍参照我上一篇博客UDP编程// 本地组播组tbxGroupIp.Text 224.0.0.1;// 发送到的组播组tbxSendToGroupIp.Text 224.0.0.1;}// 设置加入组private void chkbxJoinGtoup_Click(object sender, EventArgs e){if (chkbxJoinGtoup.Checked true){tbxGroupIp.Enabled false;}else{tbxGroupIp.Enabled true;tbxGroupIp.Focus();}}// 选择发送模式后设置private void chkbxBroadcast_Click(object sender, EventArgs e){if (chkbxBroadcast.Checked true){tbxSendToGroupIp.Enabled false;}else{tbxSendToGroupIp.Enabled true;tbxSendToGroupIp.Focus();}}// 发送消息private void btnSend_Click(object sender, EventArgs e){if (tbxMessageSend.Text ){MessageBox.Show(消息内容不能为空,提示);return;}// 根据选择的模式发送信息if (chkbxBroadcast.Checked true){// 广播模式(自动获得子网中的IP广播地址)broadcastIpEndPoint new IPEndPoint(IPAddress.Broadcast, 8002);}else{// 组播模式broadcastIpEndPoint new IPEndPoint(IPAddress.Parse(tbxSendToGroupIp.Text), 8002);}// 启动发送线程发送消息Thread sendThread new Thread(SendMessage);sendThread.Start(tbxMessageSend.Text);}// 发送消息private void SendMessage(object obj){string message obj.ToString();byte[] messagebytes Encoding.Unicode.GetBytes(message);sendUdpClient new UdpClient();// 发送消息到组播或广播地址sendUdpClient.Send(messagebytes, messagebytes.Length, broadcastIpEndPoint);sendUdpClient.Close();// 清空编辑消息框ResetMessageText(tbxMessageSend);}// 利用委托回调机制来实现界面上的消息清空操作delegate void ResetMessageTextCallBack(TextBox textbox);private void ResetMessageText(TextBox textbox){if (textbox.InvokeRequired){ResetMessageTextCallBack resetMessageCallback ResetMessageText;textbox.Invoke(resetMessageCallback, new object[] { textbox });}else{textbox.Clear();textbox.Focus();}}// 接收消息private void btnReceive_Click(object sender, EventArgs e){chkbxJoinGtoup.Enabled false;// 创建接收套接字IPAddress localIp IPAddress.Parse(tbxlocalip.Text);IPEndPoint localIpEndPoint new IPEndPoint(localIp, int.Parse(tbxlocalport.Text));receiveUdpClient new UdpClient(localIpEndPoint);// 加入组播组if (chkbxJoinGtoup.Checked true){receiveUdpClient.JoinMulticastGroup(IPAddress.Parse(tbxGroupIp.Text));receiveUdpClient.Ttl 50;}// 启动接受线程Thread threadReceive new Thread(ReceiveMessage);threadReceive.Start();}// 接受消息方法private void ReceiveMessage(){IPEndPoint remoteIpEndPoint new IPEndPoint(IPAddress.Any, 0);while (true){try{// 关闭receiveUdpClient时此时会产生异常byte[] receiveBytes receiveUdpClient.Receive(ref remoteIpEndPoint);string receivemessage Encoding.Unicode.GetString(receiveBytes);// 显示消息内容ShowMessage(lstMessageBox, string.Format({0}[{1}], remoteIpEndPoint, receivemessage));}catch{break;}}}// 通过委托回调机制显示消息内容delegate void ShowMessageCallBack(ListBox listbox,string text);private void ShowMessage(ListBox listbox, string text){if (listbox.InvokeRequired){ShowMessageCallBack showmessageCallback ShowMessage;listbox.Invoke(showmessageCallback, new object[] { listbox, text });}else{listbox.Items.Add(text);listbox.SelectedIndex listbox.Items.Count - 1;listbox.ClearSelected();}}// 清空消息列表private void btnClear_Click(object sender, EventArgs e){lstMessageBox.Items.Clear();}// 停止接收private void btnStop_Click(object sender, EventArgs e){chkbxJoinGtoup.Enabled true;receiveUdpClient.Close();}} } 广播演示结果接收端直接点接收按钮后开启接受线程在发送端勾选“广播选项”输入发送信息点发送按钮后的界面如下   下面通过把接收端加入组后的结果首先终止接收线程然后勾选“加入组”复选框然后单击“接收”按钮重新开启接收线程输出结果如下 从广播演示的两个情况可以看出广播消息会同时向网上的一切进程转发无论这个进程是独立的还是加入了某个组播组中的进程都可以接收广播消息 下面演示下组播的结果 如果把接收端的组地址改为224.0.0.3时此时发送端发送的消息“组播演示2”将不会发送到不同的组播地址则接收端就接收不到此时的消息。 从组播结果中可以看出只有加入组播地址224.0.0.2的进程才能接收到信息。   需要注意的地方是从前面的截图中可以看出不论是广播还是组播仅仅从收到的信息无从知道发送给它的进程的端口号所以广播和组播消息都是匿名发送并且通过对UDP广播和组播的理解可以简单实现一个消息群发的功能QQ的群里聊天就是这个原理。   二、 总结 本专题主要是针对上一专题的补充——实现一个简单的UDP广播组播程序通过这样一个发送端可以发送给在组播地址中的所有用户和所有子网中的所有用户。本专题可以说是对UDP编程的一个扩充吧希望大家看了本专题后可以对协议有大致的理解。在下一个专题中会和大家介绍下P2P编程的相关知识。  全部源码地址http://files.cnblogs.com/zhili/UDPBroadcast.zip   转载于:https://www.cnblogs.com/ShaYeBlog/archive/2012/09/26/2703991.html
http://www.pierceye.com/news/778/

相关文章:

  • 青岛城阳网站建设网站开发技术技巧
  • 电子商城网站建设方案企业门户网站建设市场
  • 佛山网站建设百家号做网站做软件怎么赚钱
  • 故事网站模版黑龙江省建设安全网站
  • 网站建设有些什么流程五大建设的主要内容
  • 活动手机网站开发现在的网站开发方式
  • 福田响应式网站建设服务湖北外贸网站建设多少钱
  • 中国最大的博客网站全媒体运营师报考官网在哪里
  • 做男装去哪个网站好南宁网络公司
  • 潍坊360做网站怎么样网站建设三把火科技
  • 做外贸的人经常逛的网站自己做网站都要什么手续
  • 彭州建设网站网站建设补充范本
  • 佛山选择免费网站优化商务网页设计与制作 百度百科
  • 网站登录验证码不正确广州注册个体户流程及费用
  • 傻瓜网站制作网站开发获取本地ip
  • php js做网站常见的企业网站有哪些
  • 班级优化大师下载安装app河南网站优化推广
  • wordpress 电台网站网站建设优化服务好么
  • 哪个网站可以做水果销售代理营销网站建设创意
  • 徐州市建设局网站电话号码retina wordpress
  • 网站编辑岗位张家界旅游
  • 免费物业网站模板不是营销型的网站
  • 专做毕业设计的网站梅林网站建设公司
  • 绍兴企业网站推广做安利能开个人网站
  • 自适应手机网站模板生产模板的厂家
  • 如何创建一个网站链接企业型网站制作
  • 淘宝上做进出口网站有哪些保定网站制作报价
  • 技术型网站做哪一种好网站建设方法有那几种
  • 做游戏自媒体视频网站黑客入侵别人网站做seo
  • 无锡做网站无锡网站设计做阿里巴巴网站电话