跳转到内容
彼岸论坛
欢迎抵达彼岸 彼岸花开 此处谁在 -彼岸论坛

[Rust] 学习 Rust 做了个模拟自动应答机的小玩具


小天管理

已推荐帖子

https://github.com/libook/net-ssr

把树莓派接入了一个网络,但不知道它被分配到了什么 IP ,需要接显示器或者做个自动上报 IP 。

当然要想解决我的问题有很多方法,但我只是想写写代码玩玩。

突发奇想做个自动应答机。树莓派上跑一个应答端,我在电脑上装个询问端,询问端在网络内广播 UDP 数据,应答机收到后自动应答自己的 IP 和 hostname 。

探索了一下 Rust 中的回调函数实现方式、clap 命令行库、build.rs 脚本的用法,对 Rust 的 crate 和 mod 机制有了更多的了解。

比如需要 build.rs 共用 src 里的一些代码的时候,尝试了 include!宏直接引入包含共享代码的文件,会产生一些难以解决的 dead code warning ;尝试了将共用代码分成独立 crate 再从 build.rs 和程序里 use ,但拆分出来的 crate 必须要单独 publish 而不能被携带在主 crate 的源代码中;尝试了软连接但是对 Windows 的兼容性可能不好。最终我发现了有人使用#[path=]这个属性在 build.rs 中引入共享代码,尝试了一下完美解决 dead code warning 的问题。

再比如 bin 入口文件中直接使用 mod 指令引入其他非 lib.rs 文件也会出现 dead code warning ,貌似 rust 编译器推荐所有库文件都最好在 lib.rs 中 pub mod 出来,再给 bin 入口文件引入使用。

这个程序在 Windows 上编译需要 Packet.lib ,要安装 Npcap ,完全不熟悉 Windows 的环境变量和链接库机制,调试环境变量调试了好久……

意见的链接
分享到其他网站

加入讨论

您现在可以发表并稍后注册. 如果您是会员,请现在登录来参与讨论.

游客
回复主题...

×   粘贴为富文本.   粘贴为纯文本来代替

  只允许使用75个表情符号.

×   您的链接已自动嵌入.   显示为链接来代替

×   您之前的内容已恢复.   清除编辑器

×   您无法直接粘贴图片.要从网址上传或插入图片.

  • 游客注册

    游客注册

  • 会员

  • 最新的状态更新

    没有最新的状态更新
  • 最近查看

    • 没有会员查看此页面.
×
×
  • 创建新的...