1

一つの質問

たとえばの場合

DataOutputStream output= new DataOutputStream(clientSocket.getOutputStream()) ;

また

DataInputStream in = new   DataInputStream(clientSocket.getInputStream());

これらのオブジェクトは、I / O操作が必要になるたびに作成する必要がありますか、それとも必要になるたびに読み取りまたは書き込みを呼び出す必要がありますか?(さらに、各操作後のフラッシング)

4

2 に答える 2

3

これらのオブジェクトは一度だけ、つまりソケットが初期化された後に作成する必要があります。

于 2011-02-06T13:26:20.453 に答える
2

どちらのバリアントも可能ですが、一度だけ作成する方が便利です。

バッファリングが必要な場合(書き込みコマンドごとに新しいTCPパケットを送信しないようにするため)、SocketとDataIn/Outputの間にBufferedInputStreamを配置することを検討してください。

DataOutput output = new DataOutputStream(new BufferedOutputStream(clientSocket.getOutputStream()));
DataInput input   = new DataInputStream (new BufferedInputStream (clientSocket.getInputStream()));

ここでは、Streamクラスの代わりにインターフェイスDataInput / DataOutputを使用しています。これは、多くの場合、そこで定義されたメソッドのみが必要になるためです。

于 2011-02-06T14:02:03.057 に答える