1

サーバーからいくつかの画像ファイルを読み取ろうとし、同じためにソケットプログラミングを使用しています。

しかし、ファイルが存在しない場合、socketTimeOut 例外が発生します。サーバーへの接続が失われるだけではありません。

ファイルが存在しないときにサーバーへの接続が失われないようにするにはどうすればよいですか。

InputStream inputStream = new BufferedInputStream(socket().getInputStream());

int i = -1;
while ((i = bufferedInputStream.read()) != -1) {
byteArrayOutputStream.write(i);
}

上記のコードでは、bufferedInputStream で read() を呼び出すと例外が発生します。この例外とサーバーへの接続の切断を処理するにはどうすればよいですか。

ありがとう

4

1 に答える 1

1

「ファイルが [存在しない] 場合」という例外は発生しません。読み取りタイムアウトを設定し、タイムアウト内にデータが到着しない場合に取得します。タイムアウトが短すぎる場合は、値を上げます。永遠に待ちたい場合は、削除してください。それはあなたのタイムアウトです、あなたが設定します。

SocketTimeoutException が発生しても、接続は失われません。あなたがしたと思う理由は何ですか?

于 2012-07-27T21:49:36.213 に答える