• 締切済み

Ruby WEBrick cgiからgifが最後まで送れない。

以下のようなHTTPサーバをWinXp上で動かしました。 #$ruby = "C:/ruby/bin/ruby.exe" require 'webrick' srv = WEBrick::HTTPServer.new({ :BindAddress => 'xxx.xxx.xxx.xxx', :CGIInterpreter => "c:/ruby/bin/ruby.exe", :Port => 80 }) srv.mount("/", WEBrick::HTTPServlet::FileHandler, "./", {:FancyIndexing=>true}) srv.start そして、以下のようなCGIをよびます。 #!/usr/bin/ruby STDOUT.binmode open("hoge.gif", "r") do |f| f.binmode body = f.read puts "content-type: image/gif" puts "content-length: #{body.size.to_s}" puts "" print body end すると、content-length分のHTTPボディーが送られてきません。 2種類のgifで試しましたが、193byte/724byte、289byte/451byteでした。 バージョンは、ruby 1.8.6、WEBrick 1.3.1です。 何が原因でしょうか?

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

クライアント側はどうやって確認していますか? IEやFirefoxのようなブラウザ?それとも自作?自作だと単にまだ続きがあるのに読んでいないだけと言うことも考えられます。

kingfruits
質問者

補足

クライアントはIEを使ってます。 因みに、WEBrick以外のHTTPサーバ(AN HTTP)で同じCGIを呼ぶと正常に動きました。なので、WEBrickの使い方なんじゃないかと思ってます。

関連するQ&A