นี่เป็นการบ้านของ Advanced Programming for Internet ใน Harbin Institute of Technology
พื้นที่เก็บข้อมูลมีสองโครงการ:
บริการมัลติเพล็กซ์ TCP และ UDP สำหรับบริการถ่ายโอนไฟล์โดยใช้การเลือก
เซิร์ฟเวอร์สามารถรับการเชื่อมต่อทั้ง TCP และ UDP
แพ็คเก็ตดมกลิ่นที่สกัดกั้นการรับส่งข้อมูลเครือข่ายที่ไหลเข้าและออกจากระบบผ่านอินเทอร์เฟซเครือข่าย
นักดมกลิ่นใช้ซ็อกเก็ตดิบเมื่อใส่ในลูป recvfrom รับแพ็กเก็ตขาเข้าทั้งหมด เรียนรู้เพิ่มเติม
หมายเหตุ: คุณต้องคอมไพล์โปรเจ็กต์นี้ใน Linux หรือ Unix (รวมถึง Mac OS X)
คุณสามารถคอมไพล์คำสั่ง make
โปรเจ็กต์นี้ได้
หลังจากการดำเนินการคอมไพล์สำเร็จ คุณสามารถรันเซิร์ฟเวอร์ได้:
./server <PortNumber>
จากนั้นคุณสามารถเริ่มไคลเอนต์ UDP หรือไคลเอนต์ TCP ได้:
# for TCP client
./tcp-client <ServerIP> <PortNumber>
# for UCP client
./udp-client <ServerIP> <PortNumber>
ในไคลเอนต์ TCP คุณสามารถรับไฟล์จากเซิร์ฟเวอร์:
GET <Path to the file in server>
ปัญหาที่ทราบ:
หมายเหตุ: ในระบบ Linux/Unix คุณต้องมีสิทธิ์รูทเพื่อรับแพ็กเก็ตดิบบนอินเทอร์เฟซ ข้อจำกัดนี้เป็นข้อควรระวังด้านความปลอดภัย เนื่องจากกระบวนการที่ได้รับแพ็กเก็ตดิบจะสามารถเข้าถึงการสื่อสารของกระบวนการอื่นๆ ทั้งหมดและผู้ใช้ที่ใช้อินเทอร์เฟซนั้น
sudo ./packet-sniffer
แพ็กเก็ตที่เข้ามาทั้งหมดจะถูกเทลงในไฟล์ packet-sniffer.log
โครงการนี้เปิดแหล่งที่มาภายใต้ใบอนุญาต Apache