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

flutter实现UDP发送魔法包唤醒主机

魔法包

魔法包是用16进制表示的数据包,它是由固定的前缀数据(FFFFFFFFFFFF)以及固定重复次数(16次)的目标主机MAC地址组成。
假设目标主机的MAC地址是:"50:eb:f6:27:ae:a8"
那么魔法包就是[FFFFFFFFFFFF50EBF627AEA850EBF627AEA850EBF627AEA850EBF627AEA850EBF627AEA850EBF627AEA850EBF627AEA850EBF627AEA850EBF627AEA850EBF627AEA850EBF627AEA850EBF627AEA850EBF627AEA850EBF627AEA850EBF627AEA850EBF627AEA8]

实现代码

import 'dart:io';void sendWOLPacket(String host, String mac) async {// 将MAC地址转换为字节序列List<int> macBytes = mac.split(':').map((s) => int.parse(s, radix: 16)).toList();// 构造魔术包List<int> packet = List.filled(6, 0xFF) + List<int>.generate(16 * macBytes.length, (index) => macBytes[index % macBytes.length]);RawDatagramSocket? _socket;try {_socket = await RawDatagramSocket.bind(InternetAddress.anyIPv4, 0);// 创建UDP Socket并发送魔术包_socket.broadcastEnabled = true;for (var i = 0; i < 5; i++) {_socket.send(packet, InternetAddress(host), 0);await Future.delayed(const Duration(milliseconds: 150));_socket.send(packet, InternetAddress(host), 7);await Future.delayed(const Duration(milliseconds: 150));_socket.send(packet, InternetAddress(host), 9);await Future.delayed(const Duration(milliseconds: 150));}print("success", "发送完成");} catch (e) {print("error", "出错了;$e");}_socket?.close();
}
http://www.lryc.cn/news/376206.html

相关文章:

  • 回溯算法练习题(2024/6/18)
  • DSP——从入门到放弃系列2——PLL锁相环(持续更新)
  • Altair 人工智能技术助力MABE预测消费者行为,实现设备性能优化
  • 解决Spring Boot项目中数据源URL属性的问题
  • Java每日作业day6.18
  • mac如何检测硬盘损坏 常用mac硬盘检测坏道工具推荐
  • 怎么通俗理解概率论中的c r(cramer rao 克拉默拉奥)不等式?
  • Flask之模板
  • 如何优化 Bash 脚本的执行效率?
  • c语言---循环 、判断基础知识详解
  • Opencv高级图像处理
  • Linux操作系统学习:day03
  • 快排(霍尔排序实现+前后指针实现)(递归+非递归)
  • 客户端输入网址后发生的全过程解析(协议交互、缓存、渲染)
  • 未来科技:Web3如何重塑物联网生态系统
  • C++之模板(二)
  • 相机的标定
  • C# 利用XejeN框架源码,编写一个在 Winform 界面上的语法高亮的编辑器,使用 Monaco 编辑器
  • 03- jQuery事件处理和动画效果
  • RabbitMQ 入门
  • 物联网协议应用
  • 十分钟学会微调大语言模型
  • 结合简单工厂和工厂方法模式:实现灵活的对象创建
  • 网抑云特殊版,登录即永久
  • Kotlin 实战小记:No-Arg 引用解决 No constructor found的问题
  • HTML(5)——列表表格
  • FreeBSD通过CBSD管理低资源容器jail来安装Ubuntu子系统实践
  • SpringCloud总结(springcloud alibaba)
  • 轻轻松松上手的LangChain学习说明书
  • 全面对比与选择指南:Milvus、PGVector、Zilliz及其他向量数据库