天下网吧 >> 网吧天地 >> 天下码农 >> 桌面开发 >> C# >> 正文

C#开发网吧、电竞酒店客户机网络唤醒功能源码和解读

需求:

批量、定时唤醒网吧电竞酒店的客户机。

需求解读:

首先要了解网络唤醒功能的原理如下:

Wake-on-LAN简称WOL或WoL,中文多译为“网上唤醒”、“远程唤醒”技术。WOL是一种技术,同时也是该技术的规范标准,它的功效在于让已经进入休眠状态或关机状态的计算机,透过局域网(多半为以太网)的另一端对其发令,使其从休眠状态唤醒、恢复成运作状态,或从关机状态转成引导状态。此外,与WOL相关的技术也包括远程下令关机、远程下令重启等相关的遥控机制。

实现唤醒的原理是广播一段魔法数据包,

魔法数据包(Magic Packet)是一个广播性的帧(frame),透过端口7或端口9进行发送,且可以用无连接(Connectionless protocol)的通信协议(如UDP、IPX)来传递,不过一般而言多是用UDP,原因是Novell公司的Netware网上操作系统的IPX协议已经愈来愈少机会被使用。

在魔法数据包内,每次都会先有连续6个"FF"(十六进制,换算成二进制即:11111111)的数据,即:FF FF FF FF FF FF,在连续6个"FF"后则开始带出MAC地址信息,有时还会带出4字节或6字节的密码,一旦经由网卡侦测、解读、研判(广播)魔法数据包的内容,内容中的MAC地址、密码若与计算机自身的地址、密码吻合,就会启动唤醒、引导的程序。 [1]

C#实现这类功能可以通过Udpclient,自己组合「魔法包」,然后广播出去就可以了。这网络包发送成功,目标mac地址的网卡就会收到并唤醒电脑开机。

核心功能就样实现,其他的就是处理mac地址列表和定时功能了,这个简单。

软件截图:

核心源码:

 private void chkAutoWakeUp_CheckedChanged(object sender, EventArgs e)
        {
            tmrAutoWakeUp.Enabled = ((CheckBox)sender).Checked;
        }
        private void button1_Click_1(object sender, EventArgs e)
        {
            DoWakeUpAll();
        }
        private void DoWakeUpAll()
        {
            foreach (String item in tbMacs.Lines)
            {
                WakeUp(item);
            }
        }

        private void tmrAutoWakeUp_Tick(object sender, EventArgs e)
        {
            if (DateTime.Now.ToLongTimeString().ToString() == "02:00:00")
            {
                DoWakeUpAll();
            }
        }

        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            Process.Start(new ProcessStartInfo("https://www.txwb.com") { UseShellExecute = true });
        }

源码和工具下载:

C#网络唤醒电脑工具下载,支持网吧、电竞酒店批量唤醒和定时唤醒,附带源码

本文来源:天下网吧 作者:天下码农

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。文章是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 Email:support@txwb.com,系统开号,技术支持,服务联系微信:_WX_1_本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行