ซิมดิสคัฟเวอร์
Simpdiscover เป็นลังสนิมที่เรียบง่ายเพื่ออำนวยความสะดวกในการค้นหาบริการภายในเครือข่ายท้องถิ่น (LAN) โดยใช้ดาตาแกรม UDP Broadcast หรือ "บีคอน"
'ผู้ประกาศ' ของบริการอาจเป็นกระบวนการบนเครื่องอื่น หรือเธรดหรือกระบวนการอื่นบนเครื่องเดียวกัน
เป้าหมาย
- การตรวจจับบริการที่ระบุชื่อในวงกว้างผ่าน LAN และ IP ใดบ้าง
- ง่ายต่อการเข้าใจและใช้งาน
- การพึ่งพาไลบรารีและหน่วยความจำและ cpu ขนาดเล็กเพียงเล็กน้อย
- รูปแบบบีคอนแบบธรรมดาที่ใช้งานง่ายและไม่แนะนำการรองรับรูปแบบไฟล์เฉพาะในไลบรารี
ไม่ใช่เป้าหมาย
- การค้นพบบริการทั่วทั้ง LAN, WAN, เว็บหรือในระบบคลาวด์
ปฏิบัติมาจนถึงปัจจุบัน
- โครงสร้าง BeaconSender ที่สามารถตั้งค่าให้ส่งบีคอนได้:
- ด้วยสตริงเนื้อหาบีคอนเฉพาะ
- บนพอร์ตเฉพาะ
- โดยมีวิธีการดังนี้
- ส่งเป็นวงตลอดไปในช่วงเวลาที่กำหนด
- ส่งบีคอนเพียงอันเดียว
- โครงสร้าง BeaconListener อย่างง่ายที่สามารถตั้งค่าให้รับบีคอน:
- ตรงกับเนื้อหาข้อความเฉพาะ
- ด้วยวิธีการบล็อกผู้ส่งและรอจนกว่าจะได้รับข้อความ
- โดยมีค่าการหมดเวลาเผื่อเลือกให้รอหรือไม่มีให้รออย่างไม่มีกำหนด
- ไบนารี 'ประกาศ' และ 'ฟัง' อย่างง่าย ๆ ที่ใช้ไลบรารีเป็นตัวอย่าง
- การทดสอบเอกสารบางอย่างเพื่อให้เอกสาร API ถูกต้อง
- Github Action เพื่อสร้างแล้วตรวจสอบ clippy แล้วทดสอบทั้งหมด
'ประกาศ' ไบนารี
เรียกใช้ไบนารี่นี้จาก repo โดยใช้ cargo run --bin announce
หรือเพียงแค่ announce
ว่าคุณได้ติดตั้งลังที่มีสินค้าหรือไม่
ใช้พารามิเตอร์บรรทัดคำสั่งเผื่อเลือกเพื่อระบุสตริงสำหรับข้อความบีคอนที่จะประกาศ: cargo run --bin announce -- Hello
'ฟัง' ไบนารี
เรียกใช้ไบนารี่นี้จาก repo โดยใช้ cargo run --bin listen
หรือเพียงแค่ listen
หากคุณได้ติดตั้งลังที่มีสินค้า
ใช้พารามิเตอร์บรรทัดคำสั่งทางเลือกเพื่อระบุสตริงสำหรับข้อความบีคอนที่จะรอก่อนออก: cargo run --bin listen -- Hello
งานในอนาคต
ฉันได้จดบันทึกส่วนใหญ่เกี่ยวกับงานในอนาคตและแปลงเป็นประเด็น GitHub
บางคำถามเป็นเพียงคำถามเกี่ยวกับสิ่งที่ฉันไม่เข้าใจ และอยากให้ผู้เชี่ยวชาญเกี่ยวกับ UDP และสนิมมาอธิบายให้ฉันฟัง
กรุณาแสดงความคิดเห็นหรือเริ่มต้นใด ๆ ที่คุณสนใจที่จะนำไปใช้
เห็นได้ชัดว่ายินดีต้อนรับ PR หากมีความคิดเห็นเกี่ยวกับเอกสาร การทดสอบเอกสาร หรือการทดสอบ
นักพัฒนา
- โคลน/แยก repo และดาวน์โหลด:
-
cd
ลงในไดเร็กทอรี - เพิ่มการเปลี่ยนแปลง เพิ่มความคิดเห็นเกี่ยวกับเอกสาร และ/หรือการทดสอบและการทดสอบเอกสาร
-
cargo build
-
cargo test
-
cargo clippy -- -D warnings
- สร้างประชาสัมพันธ์
- การดำเนินการ Github จะดำเนินการตามขั้นตอนเดียวกับข้างต้น
- ฉันจะตรวจสอบและรวมเข้าด้วยกัน