問題タブ [bittorrent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 継承ツリーを下にキャストすることにより、C# での「ゆるい」タイピング
したがって、私が尋ねたい質問は次のとおりです。
抽象クラス内から継承ツリーを (つまり、より特殊化されたクラスに向かって) キャストすることは許されますか、それとも良いことでしょうか?
さて、それが良いことに使えると私が思う理由の例。
最近、C# でBitTorrent プロトコルから Bencoding を実装しました。データをどのように表現するかという単純な問題です。こうすることにしたのですが、
Bencoded 文字列を必要な構造にデコードするために使用されるなど、いくつかの基本的な機能を提供するabstract BItem
クラスがあります。static BItem Decode(string)
、、、およびの4 つの派生クラスもありBString
、エンコードされる 4 つの異なるデータ型を表します。さて、ここがトリッキーな部分です。また、これらのデータ型の配列のような性質にアクセスできるように、それぞれとアクセサーを持っています。BInteger
BList
BDictionary
BList
BDictionary
this[int]
this[string]
潜在的に恐ろしい部分が今来ています:
さて、あなたは写真を手に入れます... 痛い、それは脳は言うまでもなく、目にも難しいです. そこで、抽象クラスに何か特別なものを導入しました。
これで、古いコードを次のように書き直すことができます。
うわー、さてさて、はるかに読みやすいコードです。しかし、サブクラスの知識を抽象クラスに暗示するために魂の一部を売っただけですか?
編集:いくつかの回答が寄せられたことに応じて、構造が可変であるため、この特定の質問については完全に軌道に乗っていませんtorrent["info"]["files"][0]["length"]
。torrent["announce-list"][0][0]
そこに。ジェネリックは、少なくともこの問題では進むべき道ではありません:(。私がリンクした仕様をクリックしてください。それは4つの小さなドットポイントだけです。
http - ビットトレントが普及していないのはなぜですか?
この質問はテーマのバリエーションだと思いますが、異なります。
トレントが HTTP や FTP のダウンロード オプションに取って代わることは決してありません。これは、より多くの Web サイトでこれらのオプションの横に torrent リンクがないのはなぜですか?
http://example.com/downloads/files/myFile.tar.bz2
ダウンロードしたファイルを HTTP 経由でダウンロードできる Web システムを想像してい/downloads/torrents/myFile.tar.bz2.torrent
ます/downloads/tracker/
。
トラッカーは明確に定義された問題であり、実装するのはそれほど難しくありません。すでに多くのドロップイン プレースメントの代替手段があります。ここで必要なことを行うためにカスタマイズすることは難しくないと思います。
自動生成された torrent ファイルには、通常の HTTP サーバーを永続的なシードとして含めることができます。これを行うための拡張機能は、すべてではないにしてもほとんどの主要な torrent クライアントで非常によくサポートされており、サーバー側で再構成や特別なことを必要としません (それを使用します)。ストック標準の HTTP Range ヘッダー)。
/downloads/files/
個人的には、そのようなシステムをセットアップする場合、正確に何を提供しようとしているかに応じて、ディレクトリの速度を妥当なもの、たとえば 40 ~ 50kb/s に制限します。
そのようなファイル配信システムは存在しますか? 個人用、会社用、またはその他の Web サイトで使用するとしたら、使用しますか?
php - トレントファイルを読み取るためのPHPモジュール
プログラムでトレントを読み取ってそれに関する情報を見つけるために使用できるPHPモジュールはありますか?たとえば、Seedersはありますか?
p2p - Bittorrentを理解するための良い本/リソースをお探しですか?
Bittorrentがどのように機能するかを詳細に理解するための優れた本や技術リソースをお探しですか?おそらく、ネットワークプログラミング、P2Pプログラミング、およびその他のトピックに関する本が含まれるでしょう。
parsing - トレントからのファイルセットの読み取り
.torrent ファイルからファイルセットを読み取るために、(すばやく) プログラム/スクリプトをまとめたいと考えています。次に、そのセットを使用して、トレントに属さない特定のディレクトリからファイルを削除します。
.torrent ファイルからこのインデックスを読み取るための便利なライブラリに関する推奨事項はありますか? 私はそれに異議を唱えませんが、ビットトレントの仕様を深く掘り下げて、この単純な目的のためにゼロから大量のコードをローリングしたくはありません。
言語にこだわりはありません。
objective-c - NSData バイトを NSString に変換しますか?
BEncoding ObjC クラスを使用してファイルをデコードしようとしてい.torrent
ます。
私が次のものを手に入れたときNSLog
torrent
:
name
を NSStringに変換するにはどうすればよいですか? 私が試してみました..
..データを取得しますが、その後にユニコードのごみが追加されているようです:
私も試しました(ここから)..
..しかし、これはランダムな文字の束を返すようです:
最初の方法 (Apple のドキュメントに記載されているように) がほとんどのデータを正しく返し、いくつかの追加バイトが返されるという事実は、BEncoding ライブラリのエラーである可能性があると思います..しかし、ObjC に関する知識が不足している可能性が高くなります故障して..
p2p - マルチプレイヤーゲーム用の完全/半自律的な P2P ネットワークはどの程度実現可能ですか?
マルチプレイヤー ゲームをプレイするための P2P システム (ファイル用の BitTorrent など) を作成する方法について、私は考えていました。アイデアは、マルチプレイヤー アーキテクチャから従来のサーバーを削除することです。通信を開始したり、世界の最新情報を送信したりするために何らかのサーバーが必要になることは理解していますが、サーバーの負荷と帯域幅の圧力をどのように軽減するかについて興味があります.
ちなみに、これは 2 人のプレイヤーが参加するチェッカー ゲームから 30 人以上のプレイヤーがいる FPS まで、あらゆるサイズのゲームに当てはまります。
私はクレイジーですか?
c# - 完全に C# で書かれた BitTorrent クライアント?
C# で完全に (つまり完全に) 記述された BitTorrent クライアントはありますか? mono で書かれた BitTorrent クライアントを知っています。
開発中の C# で書かれた MonoTorrent と BitSharp 以外に、オープンソースの BitTorrent クライアントはありますか?
「C# でのオープンソース ビット トレント クライアント」が C# プログラマーの間でどれだけの関心を引くかは疑問です。
編集: http://pumpkintorrent.codeplex.com/で Michael Stum の Pumpkin torrent をチェックしてください。
@Michael: プロジェクトの URL を共有してくれてありがとう。
@アラン:MonoTorrentに感謝;)
search-engine - torrent ファイルのインデクサーはどのように構築しますか?
torrentz.com のような検索エンジンの背後にある技術に興味があります。私が観察したところ、トレント ファイルをホストするのではなく、トレント ファイルをホストする他のサーバーに接続します。
- キーワードを検索すると、検索に一致する可能性のあるタイトルのリストが表示されます。
- 次に、これらのいずれかを選択すると、対応するトレント ファイルをホストしている可能性のあるサーバーの別のリストが表示されます。
私が特に興味を持っているのは、すべてのコンテンツを収集してインデックス化するための戦略です。
どのようにデータを収集し、集計するのですか?
これらのサーバーのそれぞれがインデックス作成のためにコンテンツを送信する送信ベース サービスですか?
クロールアルゴリズムですか?もしそうなら、piratebay.org のようなサイトのクロールをどのように開始しますか?
これらの他のサーバーのデータベースにアクセスできますか?
bittorrent プロトコルに関する私の知識と理解はそれほど精巧ではありませんが、オンラインで見つけたドキュメントは、私が興味を持っているものとはまったく異なるトラッカー サービスの構築に関連するプロセスに向けたものでした。素材が高く評価されています。
c# - BitSharp / MonoTorrent がすべてのピアをチョークする
bittorrent 経由でファイルをダウンロードするためのライブラリを作成しています。ユーザーの介入はありません。ユーザーは、ファイルがダウンロードされていることさえ知らずにすみます。私は、ファイル転送の推奨方法として BitTorrent を選択し、MonoTorrent ライブラリを中心にアプリケーションを構築しました。私のサーバーでは、追跡目的で bttrack python スクリプトを実行し、シード用に rTorrent を実行しています。
1078 個のファイルをクライアント マシンに正常にダウンロードしました。ただし、それぞれ 8 パーセントと 11 パーセントを超えないファイルが 2 つあります。uTorrent、BitTorrent、さらには MonoTorrent GUI を使用すると、ファイルは問題なくダウンロードされます。
ダウンロードは、私以外のすべてのクライアントで正常に機能します。シードに使用するクライアントは関係ありません。ファイルサイズやファイル名に異常はありません:
72 359 940b - a05276e5193644d48aaf711242b40a30.ssz
74 448 896b - e5ba856c6115453091d8b82ae53749bd.ssz
私のクライアントでは、最初のファイルが 7.58% (5.30MB) までダウンロードされます。2 番目のファイルは 11.42% (8.30MB) になります。
rTorrent (rTorrent からシードする場合) 画面では、最初はステータスが r/ci/un (リモートで開始された接続/リモート クライアントがローカル クライアントをチョークしている、ダウンロードに関心がある/ローカル クライアントがリモート クライアントをチョークしていない、アップロードに関心がない) として表示されます。
トレントがデッドロックに達すると、ステータスが r/cn/cn (リモートで開始された接続/リモート チョーク ローカル、ダウンロードに関心がない/ローカル クライアント チョーク リモート、アップロードに関心がない) に変わります。
転送はそこで停止し、私が何をしたとしても、それ以上進めることはできません。
MonoTorrent バージョン 0.70.0.0、SVN リビジョン 134304 を使用しています。
クライアントはすべて高価な GSM 接続を使用しているため、トレントのアップロード スロットを 0 に設定しました。ただし、テストでも、アップロード用のスロットを割り当てても問題は解決しませんでした。
これらのクライアントを友達にして、お互いを窒息させないようにするにはどうすればよいですか?
編集: monotorrent svn にあるサンプル クライアントも試しました。また、上記のポイントまでのファイルのみをダウンロードします。古いバージョンの MonoTorrent (バージョン 0.2.0.0) で構築された MonoTorrentGUI はファイルをダウンロードしますが、そのバイナリを使用しようとしても、アプリケーション経由でダウンロードされません。