1

基本的に、(新しい接続を受信すると) 新しい socketWorker を作成し、クライアントへの接続を割り当てるリスナーを取得しました。クライアントが巨大なファイルを送信し (たとえば、完全に受信されるまでに 30 秒かかります)、その後数バイトの小さなファイルを送信した場合、小さなファイルは巨大なファイルが完全に受信されるまで受信されません。これは明らかに悪いアプローチであり、ファイルが同時に送信されるようにするにはどうすればよいのでしょうか?

現在、私は非同期メソッドを使用しています。ファイルが完全に受信されるたびに、次のファイルを受信するために BeginReceive() が再度呼び出されます (悪い方法です)。

これを修正する方法はありますか?私はそれを感謝します!

4

1 に答える 1

2

たとえばSPDYのように、多重化を実装する必要があります。これは(基本的に)メッセージ部分をフレーミングし、各フレームにストリームIDを提供することによって行われます。このようにして、単一の接続を介して複数のストリームを交換できます。

または、ファイルごとに1つの接続を開くこともできます。

于 2012-12-05T13:08:01.147 に答える