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 的环境变量和链接库机制,调试环境变量调试了好久……
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.