- PR -

Applet から url.openStream() で 4Gbyte のファイルを転送するとエラーになる

1
投稿者投稿内容
会議室デビュー日: 2006/03/29
投稿数: 2
投稿日時: 2006-03-29 09:44
■環境
 OS : Windows2003server(クライアントも同様)
Server : IIS6.0

■詳細
 クライアントが起動した Applet から URLクラスの openStream()メソッドを
 使ってサーバーにあるファイルをダウンロードしています。
 このとき、2Gbyteを超えるファイルをダウンロードしようとすると SocketException
 Connection Reset が発生してしまいます。

もし同様の現象を見たことがある方がいらっしゃれば、一報頂けると幸いです。

よろしくお願いいたします。

 
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2006-03-29 14:44
遭遇したことはありませんが、HttpURLConnection の制限でそういうのがあるってのをどこかで見かけたことはあります。
会議室デビュー日: 2006/03/29
投稿数: 2
投稿日時: 2006-03-29 18:12
>インギさん

ご返信ありがとうございます。

確かに HTTP が怪しいそうですね。
IIS、OS には原因がなさそうですし・・・。

FTPサーバーに切り替えるってのが無難ですね。
うにくま
ベテラン
会議室デビュー日: 2005/11/05
投稿数: 82
投稿日時: 2006-03-29 23:32
InputStream.readメソッドの戻り値の型による制限ではないでしょうか?
int型の最大値が2^31-1(2Gbyte)なので。

url.openStream() -> openConnection().getInputStream() -> InputStream.read()
techbits
会議室デビュー日: 2006/02/02
投稿数: 10
投稿日時: 2006-03-31 22:10
このメソッドはHTTPのGETでファイルを取得しているのではないでしょうか。
GETはコンテンツサイズに上限があるので、それに引っかかっているのではないでしょうか?
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2006-04-02 13:10
BASP21 は分割で対応
分割オプションを使うと2GB以上のファイルをアップロードできます。
http://www.b21soft.co.jp/basp21/basp21pappl.html#fileup_maxsize

Apache は最近
Apache HTTP Server 2.2.0
- 32bit Unixでも2GB以上のファイルサポート
http://pcweb.mycom.co.jp/news/2005/12/02/033.html
1

スキルアップ/キャリアアップ(JOB@IT)