なひです. > From: Wakou Aoyama [mailto:wakou / fsinet.or.jp] > Sent: Tuesday, July 06, 1999 7:05 AM > > [ruby-list:15220]で書いたcat.rbとreq.rbなんです... > > Apache起動直後に「req.rb GET 5」とやると,返事がなく, > > TCP sessionのタイムアウトまでだんまりです. > > [ruby-list:15220] を見ると、req.rb が GET の時にも POST でリクエストし > ているのが原因の1つのようにも見えます。それと、だんまりになる直接の原 うは.すいません,ここはGETにしないといけないですね. req.rbの不具合です.かっこわるい...^^; とはいえ,手動でGETした時も駄目だったような...と思い, 以下のようにreq.rbを修正しましたが,やっぱり駄目みたいです (同様の症状が出る). これはまだgdbで追いかけてないので,後で見てみますね. #!/usr/local/bin/ruby hostName = 'localhost' portNo = 80 absPath = '/cat.rb' method = ARGV.shift postSize = ARGV.shift if ( method == 'GET' ) absPath << '?' << 'x' * postSize.to_i end require 'socket' CRLF = "\r\n" header = [] header.push( "#{method} #{absPath} HTTP/1.0" ) header.push( 'User-agent: NaHi original agent/19990706' ) header.push( 'Content-Length: ' << postSize ) if ( method != 'GET' ) header.push( CRLF ) msg = header.join( CRLF ) msg << 'x' * postSize.to_i if ( method != 'GET' ) socket = TCPsocket.open( hostName, portNo ) socket.write( msg ) while ( !socket.eof? ) print socket.read end print "\n" > 因は eof? を使っているせいでしょう。eof? は次の1文字を読み込んでから > ungetc しているので、その1文字が返ってくるまで待ち続けてしまいます。 これはまぁ,帰ってこなければならないはずのものですから... テストスートとしてはこんなもんじゃないかと.^^;