簡単なダウンロードアクセラレータを作成したい。それは着信接続のためのJava Client/Serverマルチスレッドによるファイル転送の問題
- サーバー待ちの仕組み
。
- クライアントがサーバーに接続しています。
- 次に、サーバーはファイルサイズをクライアントに送信し、ダウンロード接続を待ちます。
- 次に、クライアントは、サーバーに接続され、ダウンロードスレッドとこれらのスレッドを作成し、ファイルサイズを得ました。
- サーバは、各スレッドからの接続を得た後、サーバーは開始を待つスレッドからファイルオフセットを終了します。
- 各スレッドは、開始オフセットファイルと終了オフセットファイルをサーバーに送信します。
- サーバがオフセットを取得した後、サーバはファイルの一部をスレッドに送信します。
- 各スレッドはファイルを読み書きします。例えば、buffer.p01、buffer.p02は、buffer.p03
- クライアントは、シーケンスにより、一つのファイルのためにすべてのファイルをマージします。 (まだを実装されていない)
私は、サーバー側は、それが正常に動作しますが、クライアント側は、それはいくつかの問題があると思います。
問題は、私が1にMAXTHREADを設定した場合、それが正しく動作しています。しかし、私が複数を設定すると、それはどこかで永遠に詰まった。
これは、サーバー側のコード..です http://pastebin.com/TEakGB0c
、これはあなたの http://pastebin.com/wKhP7DxS
感謝をマルチスレッドでクライアント側のコードです。
は、デッドロックの問題のように聞こえます。どんなコードもなければ、本当に助けることはできませんか? –
私はすでに質問の最後にコードを掲載しています。あなたは見えますか? –
ああ、私は今それを見る。見せて。 –