首页 > 其他分享 >0209-模拟发送多个数据包

0209-模拟发送多个数据包

时间:2024-07-24 10:18:45浏览次数:9  
标签:datalink mut dummy pnet 发送 let 数据包 0209

环境

  • 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);

设置发送数据

// 创建了一个闭包,第一个字节设置成了递增索引
let mut closure_counter = 0;
let mut builder = |pkg: &mut [u8]| {
    pkg[0] = closure_counter;
    closure_counter += 1;
};

发送

// 发送了三次,每次 20 个字节
sender.build_and_send(3, 20, &mut builder).unwrap().unwrap();

接收

// 收到三个数据包
for i in 0..3 {
    let pkg = read_handle.try_recv().expect("Expected a packet");
    assert_eq!(pkg[0], i);
}
// 第四个收不到
assert!(read_handle.try_recv().is_err());

总结

使用 pnet_datalink 模拟了数据包的多次发送和接收。

附录

标签:datalink,mut,dummy,pnet,发送,let,数据包,0209
From: https://www.cnblogs.com/jiangbo4444/p/18320253

相关文章

  • 从 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图资料包括:需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。方案选择单片机的......
  • 纳米体育数据API电竞数据接口:指数数据包接口文档API示例①
    纳米体育数据的数据接口通过JSON拉流方式获取200多个国家的体育赛事实时数据或历史数据的编程接口,无请求次数限制,可按需购买,接口稳定高效;覆盖项目包括足球、篮球、网球、电子竞技、奥运等专题、数据内容。纳米数据API2.0版本包含http协议以及websocket协议,主要通过http获取数......
  • rabbitmq发送消息localdatetime报错:Java 8 date/time type `java.time.LocalDateTime`
    两种解决方案:通过全局配置LocalDateTime的序列化/***json序列化增强解决Jackson序列化不了Java8日期*/@BeanpublicMessageConvertermessageConverter(){ObjectMapperom=newObjectMapper();om.setVisibility(PropertyAccessor.ALL,JsonAut......