首页 > 其他分享 >0208-模拟发送链路层数据

0208-模拟发送链路层数据

时间:2024-07-24 10:19:12浏览次数:14  
标签:dummy 20 assert pnet 发送 let 0208 链路层 pkg

环境

  • Time 2022-11-20
  • WSL-Ubuntu 22.04
  • Rust 1.65.0
  • pnet 0.31.0

前言

说明

参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/dummy

目标

使用 pnet_datalink 包中的 dummy 模拟数据链路层发送一个数据包。

网络接口

let interface = dummy::dummy_interface(44);

创建通道

let mut config = dummy::Config::default();

let read_handle = config.read_handle().unwrap();
let channel = dummy::channel(&interface, config);

设置发送数据

// 确保数据长度是 20,并且把第 0 位修改为 9,第19位修改位 201
let mut builder = |pkg: &mut [u8]| {
    assert_eq!(pkg.len(), 20);
    pkg[0] = 9;
    pkg[19] = 201;
};

发送

sender.build_and_send(1, 20, &mut builder).unwrap().unwrap();

接收

// 只发送了一次,所以只能接收到一个包
let pkg = read_handle
    .try_recv()
    .expect("Expected one packet to be sent");
assert!(read_handle.try_recv().is_err());
assert_eq!(pkg.len(), 20);
assert_eq!(pkg[0], 9);
assert_eq!(pkg[19], 201);

总结

使用 pnet_datalink 模拟了数据帧的发送和接收。

附录

标签:dummy,20,assert,pnet,发送,let,0208,链路层,pkg
From: https://www.cnblogs.com/jiangbo4444/p/18320248

相关文章

  • 0210-模拟发送构建的数据
    环境Time2022-11-20WSL-Ubuntu22.04Rust1.65.0pnet0.31.0前言说明参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/dummy目标使用pnet_datalink包中的dummy模拟数据链路层发送数据包。网络接口letinterface=dummy::dummy_interface(44);创建通......
  • 0209-模拟发送多个数据包
    环境Time2022-11-20WSL-Ubuntu22.04Rust1.65.0pnet0.31.0前言说明参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/dummy目标使用pnet_datalink包中的dummy模拟数据链路层发送多个数据包。网络接口letinterface=dummy::dummy_interface(44);创......
  • 从 post 请求发送的回调中提取数据
    当我的服务余额更新时,然后向我的服务器http://.../callback发送请求,其中包含屏幕截图中的数据,并且从这些数据中,我需要将_id和SocialnetworkId提取到变量中,以便进一步添加到机器人数据库和交互(data.from.socialNetworkId和data.from._id)在此处输入图像描述......
  • Selenium 是否可以检测发送到 devtools 网络选项卡中站点的特定请求?
    我在Chrome和Firefox上使用python上的Selenium。我希望selenium等待,直到将特定请求发送到可以位于devtools的网络选项卡中的站点。例如名称为“index-24c3e2ca18.js”且请求URL为“https://www.wikipedia.org/portal/wikipedia.org/assets/js/index-24c3e2ca18.js”......
  • 如何将击键发送到最小化窗口而不最大化它?
    我正在为GTA5RP编写一个机器人,但我不知道如何将击键和鼠标点击发送到最小化的游戏窗口。我已经尝试了很多方法,但没有任何效果。|||如果这简化了某人的任务,那么您需要通过进程名称搜索窗口,即,因为每次重新启动时,RAGEMultiplayer的名称都会添加空格。GTA5.exe......
  • HttpClient 发送get和post请求的使用方法
    一Httpclient的简介    HttpClient是ApacheJakartaCommon下的子项目,可以用来提供高效的,最新的,功能丰富的支持HTTP协议的客户端变成工具包,并且他支持HTTP协议最新的版本和建议。核心API:HttpClient  HttpClientsCloseableHttpClientHttpGetHttpPost二Ht......
  • 如何在python中发送带有请求的“multipart/form-data”?
    如何在Python中使用multipart/form-data发送requests?如何发送文件,我明白,但是如何通过这种方法发送表单数据无法理解。可以使用Python中的requests库来发送multipart/form-data请求。说得对,requests库可以轻松发送文件,并且发......
  • 数据列表“占位符”未随表单提交一起发送
    我有一个正在更新SQL数据库的Python应用程序。一种表单(使用Jinja)提供了一个数据列表输入,其中包含当前值(来自数据库)作为“占位符”<inputlist="item_cat"name="item_cat"placeholder="{{item_cat}}"/><datalistid="item_cat">{%forcat_nameincate......
  • Firebase 云消息传递 HTTP v1 发送错误 - 400 客户端错误:URL 请求错误:https://fcm.goo
    我尝试使用Firebase云消息传递HTTPv1这是在Windows下运行的Python代码importjsonimportrequestsfromgoogle.oauth2.service_accountimportCredentialsimportgoogle.auth.transport.requestsdef_get_access_token():credentials=Credentials.fro......
  • 1323、基于51单片机按键发送GPS时间定位信息 GSM短信收LCD12864显示报警(程序+原理图+
    毕设帮助、开题指导、技术解答(有偿)见文未  目录方案选择单片机的选择一、设计功能二、实物图单片机模块设计三、原理图四、程序源码五、PCB图资料包括:需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。方案选择单片机的......