Multiplex Socket
1.0.0
這是哈爾濱工業大學《互聯網高級編程》的作業。
該存儲庫包含兩個項目:
使用 select 的檔案傳輸服務的 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系統中,您需要root權限才能在介面上接收原始資料包。此限制是一種安全預防措施,因為接收原始資料包的進程可以存取使用該介面的所有其他進程和使用者的通訊。
sudo ./packet-sniffer
所有傳入的封包將會轉儲到packet-sniffer.log
檔案中。
該專案是在 Apache 許可下開源的。