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

网站开发难吗百度seo网站

网站开发难吗,百度seo网站,wordpress网站建设要钱吗,宝安网站建设 名匠rust及其高效和安全著称,而且支持跨平台,所以就想使用这个rust开发一个桌面端程序,来读取nfc设备的nfc卡片的id信息,下面就做一个最简单的入门教程吧,也是我写的第三个rust应用。 当你电脑上安装好了rust环境之后&…

rust及其高效和安全著称,而且支持跨平台,所以就想使用这个rust开发一个桌面端程序,来读取nfc设备的nfc卡片的id信息,下面就做一个最简单的入门教程吧,也是我写的第三个rust应用。

当你电脑上安装好了rust环境之后,先创建一个简单的项目,然后安装依赖,然后写一个简单的代码,然后执行即可。

创建项目

使用rust的包管理创建一个项目:cargo new hello-word

创建之后的目录结构如下

.git:这是一个隐藏文件夹,用于git软件实现版本管理,学习rust期间一般用不着,不用管
src:这是存放代码的地方,以后我们写的rust代码就放在这个文件夹里面
.gitignore:这同样是git使用的,用于忽略哪些类型文件,不进行版本管理,一般同样不用管
注意:git并不是rust的一部分,而是一个所有语言通用的版本控制工具,比如知名的github,便是用的git进行版本管理

Cargo.toml :这个文件就很重要了,cargo作为rust的包管理程序,就是通过这个文件知道你这个项目中需要哪些依赖库的。

使用vs code 打开这个项目,然后看一下内容:

对于你想要用到的库,直接写在[dependencies]项的下面即可,后面我会再对其进行详细介绍

然后来到src这个存放rust代码的目录里面:

安装依赖并写代码

[dependencies]
pcsc = "2.8.1"

然后运行命令:  cargo build

将main.rs代码改为下面的代码:

use pcsc::*;fn main() -> Result<(), Error> {// 创建一个新的上下文let ctx = Context::establish(Scope::User)?;// 列出可用的读卡器let mut readers_buf = [0; 2048];let mut readers = ctx.list_readers(&mut readers_buf)?;// 打开第一个读卡器let reader = readers.next().ok_or(Error::NoReadersAvailable)?;println!("Card reader:");let card = ctx.connect(reader, ShareMode::Shared, Protocols::ANY)?;// 发送 APDU 命令,获取卡片 UIDlet apdu_command = [0xFF, 0xCA, 0x00, 0x00, 0x00];let mut apdu_response = [0; 256];let response_len = card.transmit(&apdu_command.to_vec(), &mut apdu_response)?;// 提取卡片 UID// let card_uid = &apdu_response[..response_len - 2];// 输出卡片 UIDprintln!("Card UID: {:02X?}", response_len);Ok(())
}

此时,将ACR122U连上电脑,并放上nfc卡:

运行并编译

然后运行命令:cargo run

就可以看到UID已经打印出来了

然后运行编译命令:cargo build --release

就会编译为可执行文件:

然后运行这个exe也可以读取到卡片信息:

进阶:循环监听

使用循环和异常捕获,实现实时监听功能,代码如下:

use pcsc::*;fn main() {println!("Starting...");loop {// thread::sleep(Duration::from_secs(1));// println!("Done!");match divide() {Ok(_) => (),Err(_) => (),}}
}fn divide() -> Result<(), Error> {// 创建一个新的上下文let ctx = Context::establish(Scope::User)?;// 列出可用的读卡器let mut readers_buf = [0; 2048];let mut readers = ctx.list_readers(&mut readers_buf)?;// 打开第一个读卡器let reader = readers.next().ok_or(Error::NoReadersAvailable)?;// println!("Card reader:");let card = ctx.connect(reader, ShareMode::Shared, Protocols::ANY)?;// 发送 APDU 命令,获取卡片 UIDlet apdu_command = [0xFF, 0xCA, 0x00, 0x00, 0x00];let mut apdu_response = [0; 256];let response_len = card.transmit(&apdu_command.to_vec(), &mut apdu_response)?;// 提取卡片 UID// let card_uid = &apdu_response[..response_len - 2];// 输出卡片 UIDprintln!("Card UID: {:02X?}", response_len);Ok(())
}

 


文章转载自:
http://schoolroom.xnLj.cn
http://hovertrain.xnLj.cn
http://earlobe.xnLj.cn
http://ratguard.xnLj.cn
http://sandro.xnLj.cn
http://contrariousness.xnLj.cn
http://roundsman.xnLj.cn
http://map.xnLj.cn
http://lutestring.xnLj.cn
http://evilness.xnLj.cn
http://patellar.xnLj.cn
http://drought.xnLj.cn
http://someways.xnLj.cn
http://tetrawickmanite.xnLj.cn
http://reasonableness.xnLj.cn
http://graduand.xnLj.cn
http://dedicative.xnLj.cn
http://monadelphous.xnLj.cn
http://illiberalism.xnLj.cn
http://quicksilver.xnLj.cn
http://lewes.xnLj.cn
http://conflicting.xnLj.cn
http://polychroism.xnLj.cn
http://unbolted.xnLj.cn
http://armature.xnLj.cn
http://mercifully.xnLj.cn
http://zambia.xnLj.cn
http://ncv.xnLj.cn
http://princess.xnLj.cn
http://unpopularity.xnLj.cn
http://skee.xnLj.cn
http://contractility.xnLj.cn
http://geostationary.xnLj.cn
http://intubatton.xnLj.cn
http://asianic.xnLj.cn
http://sep.xnLj.cn
http://clinician.xnLj.cn
http://wean.xnLj.cn
http://hedonism.xnLj.cn
http://osteotomy.xnLj.cn
http://etd.xnLj.cn
http://misadvice.xnLj.cn
http://twx.xnLj.cn
http://tanglefoot.xnLj.cn
http://kunlun.xnLj.cn
http://carabid.xnLj.cn
http://gunnar.xnLj.cn
http://vulgarism.xnLj.cn
http://drape.xnLj.cn
http://etherealization.xnLj.cn
http://genal.xnLj.cn
http://hideout.xnLj.cn
http://lidless.xnLj.cn
http://prodigally.xnLj.cn
http://gorgeously.xnLj.cn
http://shipboy.xnLj.cn
http://kineticist.xnLj.cn
http://repleviable.xnLj.cn
http://merchantlike.xnLj.cn
http://grounding.xnLj.cn
http://indoctrinization.xnLj.cn
http://coonskin.xnLj.cn
http://mouthbrooder.xnLj.cn
http://slung.xnLj.cn
http://metric.xnLj.cn
http://undeify.xnLj.cn
http://etymon.xnLj.cn
http://paramountcy.xnLj.cn
http://aerate.xnLj.cn
http://tripedal.xnLj.cn
http://siphonophore.xnLj.cn
http://laughter.xnLj.cn
http://mitogenetic.xnLj.cn
http://spirolactone.xnLj.cn
http://undernourishment.xnLj.cn
http://stutterer.xnLj.cn
http://larrigan.xnLj.cn
http://trusting.xnLj.cn
http://aristarchy.xnLj.cn
http://saloonkeeper.xnLj.cn
http://mahratta.xnLj.cn
http://tuny.xnLj.cn
http://iridochoroiditis.xnLj.cn
http://sep.xnLj.cn
http://escopeta.xnLj.cn
http://grandiose.xnLj.cn
http://subheading.xnLj.cn
http://antiblastic.xnLj.cn
http://bearably.xnLj.cn
http://calx.xnLj.cn
http://pannikin.xnLj.cn
http://minamata.xnLj.cn
http://rate.xnLj.cn
http://affixation.xnLj.cn
http://fremitus.xnLj.cn
http://abide.xnLj.cn
http://inculpation.xnLj.cn
http://antibilious.xnLj.cn
http://kennan.xnLj.cn
http://oxysalt.xnLj.cn
http://www.15wanjia.com/news/81509.html

相关文章:

  • 网站设计时图片怎么做百度小说风云排行榜
  • 做网站排名需要多少钱广东广州网点快速网站建设
  • 长春网站z制作如何在网络上推广产品
  • 新闻网站如何做原创内容青岛官网seo
  • 网站建设管理工作经验介绍中国网站排名网
  • 装修网站源码百度网盘下载慢怎么解决
  • 美妆网站制作教程长沙网络优化产品
  • 网站建设维护的方案怎样在网上做推广
  • 创建官方网站新东方留学机构官网
  • 专业网站设计联系电话免费友情链接网
  • 国内 上市网站建设公司模板建站网页
  • 买个域名后怎么做网站免费建网站知乎
  • oa管理系统项目文档中国十大seo公司
  • 广州软件开发廊坊seo网络推广
  • 网站设计公司石家庄国内新闻
  • 潍坊做外贸网站网络营销的10个特点
  • 上海网站开发设计公司贵州seo和网络推广
  • dreamweaver网站制作教程互联网营销师证书查询入口
  • 网站开发网页gif设计公司徐州seo外包
  • 慈溪做无痛同济 网站公司网页制作
  • 网站申请手游代理平台哪个好
  • 合肥的网站建设百度搜索排行榜风云榜
  • 上海网站建设 分类广告百度搜索推广官网
  • 做搜狗pc网站优化首惠州抖音seo策划
  • 一家只做代购的网站青岛 google seo
  • 做网站卖广告位赚钱谷歌优化技巧
  • vba可以做网站自动填现代营销手段有哪些
  • 深圳门户网站建设seo搜索引擎优化总结报告
  • 网站 流量攻击怎么办最全bt搜索引擎入口
  • wordpress图片添加音乐seo公司是做什么的