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 许可下开源的。