データ構造のコースを終えたところです。そして今、私は少し急流のクライアントを構築することを考えていました。
しかし、グーグルで検索したところ、ソケットやポートなどの用語が理解できませんでした。
どこを見ればよいかについての一般的なガイダンスが必要です。本、チュートリアル、その他一般的に、少しトレントなクライアントを作るために必要なスキルの種類、仕事に最適な言語の種類、さらには目標を達成するためにどのようなコースを探すべきか。
あなたが提供できるどんな助けにも前もって感謝します。
データ構造のコースを終えたところです。そして今、私は少し急流のクライアントを構築することを考えていました。
しかし、グーグルで検索したところ、ソケットやポートなどの用語が理解できませんでした。
どこを見ればよいかについての一般的なガイダンスが必要です。本、チュートリアル、その他一般的に、少しトレントなクライアントを作るために必要なスキルの種類、仕事に最適な言語の種類、さらには目標を達成するためにどのようなコースを探すべきか。
あなたが提供できるどんな助けにも前もって感謝します。
あなたの質問は、アーキテクチャとプログラミングの2つの部分に分かれています。まず、プログラムを設計する必要があります。アーキテクチャとは、大規模な「システム」をサブシステムとして視覚化し、それらの間のインターフェイスを定義してから、踊ることができる「曲」を作成するプロセスです。
上記のシステムの場合、これらはそれらの「サブシステム」です。
ストレージマネージャー:トレントファイルは複数のチャンクで構成されており、ランダムな順序で収集、アセンブル、検証され、最終的に1つのファイルとして表示されます。ストレージマネージャーはこれを行います。
Transport Manager:このシステムは、トレントチャンクを出し入れする方法を理解しています。送信するパケットまたは受信するホストを指定します。
接続マネージャー:このシステムは、送受信する接続を確立します
などなど。
サブシステムを定義したら、入力と出力を定義します。次に、各モジュールを開発します。
あなたが知る必要があることの一つは、コンピュータネットワークがどのように機能するかということです。これには、パケット送信、ソケット、ポート、スレッドなどが含まれます。
コンピュータネットワークは非常に幅広いテーマですが、私が読んでコンピュータネットワークについて学ぶのが大好きな本の個人的な推測をここに残すことができます(ネットワークの紹介の一部ですが、多くのことを説明し、ソケットを使用してJavaでプログラミングする方法を教えます) 。
コンピューターネットワーキング、インターネットを特徴とするトップダウンアプローチ、James F. Kurose、Keith W. Ross、2005年、Addison-Wesley
パケット送信、スレッド化、ソケット、ポートなどの概念について説明します。急流についてのセクションさえあることを思い出します。