rust-network - 評価
評価スケール
基本評価 (100点満点)
| 項目 |
配点 |
評価基準 |
| コンパイル |
10点 |
エラーなし |
| TCPエコー |
30点 |
正確なエコー |
| UDPチャット |
30点 |
メッセージ配信 |
| DNSリゾルバー |
20点 |
正しい解決 |
| エラー処理 |
10点 |
適切な処理 |
ボーナス評価 (最大30点)
| 項目 |
配点 |
| 接続プール |
10点 |
| タイムアウト |
10点 |
| NAT穴あけ |
10点 |
課題の目的
学習目標
- TCP vs UDP の違い
- バッファリングと分割 - メッセージフォーマット
- エラーハンドリング - IPアドレッシング
- DNS の仕組み評価手順
1. TCPエコーテスト
# サーバー起動
./rust-network tcp-server &
# nc でテスト
echo "Hello" | nc localhost 9000
# 出力: Hello
# 複数接続
for i in {1..10}; do
echo "Test $i" | nc localhost 9000 &
done
2. UDPチャットテスト
# 端末1
./rust-network udp-chat --port 5001
# 端末2
./rust-network udp-chat --port 5002 --peer 127.0.0.1:5001
# メッセージ交換
3. DNSテスト
./rust-network dns example.com
# 出力: 93.184.216.34
./rust-network dns google.com
# 複数IPが返る
減点対象
| 項目 |
減点 |
| パケット分割未対応 |
-15点 |
| ソケットリーク |
-10点 |
| バッファオーバーフロー |
-20点 |
合格基準
- マンダトリーパート: 80点以上
- 基本的な通信が動作すること