Multiplex Socket
1.0.0
これはハルビン工業大学のインターネットのための高度なプログラミングの宿題です。
リポジトリには 2 つのプロジェクトが含まれています。
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 権限が必要です。 raw パケットを受信するプロセスは、そのインターフェイスを使用する他のすべてのプロセスおよびユーザーの通信にアクセスできるため、この制限はセキュリティ上の予防策です。
sudo ./packet-sniffer
すべての受信パケットはpacket-sniffer.log
ファイルにダンプされます。
このプロジェクトは、Apache ライセンスに基づいてオープンソース化されています。