0

クライアントとサーバー間の通信がソケットに基づいており、クライアントとサーバー間で交換されるメッセージがシリアル化されたオブジェクト(要求と応答をカプセル化するメッセージオブジェクト)であるJavaクライアント/サーバーデスクトップアプリケーションがあります。

ここで、クライアントがローカルコンピューターからサーバーにファイルをアップロードできるようにする必要がありますが、バッファーはメッセージオブジェクトの交換に既に使用されているため、バッファーを介してファイルを送信できません。

別のストリームを開いてファイルを送信する必要がありますか、それとも自分の状況に合わせてファイルをアップロードするためのより良い方法はありますか?

4

3 に答える 3

1

実際には2つのオプションしかありません。

  1. ファイルのアップロード専用の別の接続を開き、それを介して送信します。
  2. アップロードされるファイルのビットを表すメッセージオブジェクトを作成し、これらのメッセージオブジェクトを介してファイルをチャンクで送信します。

前者は私にはよりシンプルでクリーンに見え、必要なオーバーヘッドと複雑さの少ないコードです。

于 2012-09-23T19:57:16.197 に答える
1

I need to make the client able to upload a file from the local computer to the server

-Solely Dedicated Connectionファイルをアップロードするためにサーバーを開きます。

-作業を簡単にするために使用し、さらにファイルのアップロードとダウンロードFile Transfer Protocolに使用するのは非常に簡単で信頼性があります...。Apache's common lib

このリンクを参照してください:

http://commons.apache.org/net/

于 2012-09-23T20:03:44.147 に答える
1

ソリューションを維持し、ファイルのコンテンツをオブジェクトとして、たとえば文字列として渡すことができます-問題のある文字が含まれている場合は、コンテンツのBase64エンコーディング(または同様のもの)を使用してください

于 2012-09-23T20:12:28.123 に答える