#!/usr/bin/env ruby FCGI_PURE_RUBY = true require File.join(File.dirname(__FILE__), 'fcgi.rb') start_port = ARGV[0].to_i ports = ARGV[1].to_i start_port.upto(start_port + ports - 1) do |port| print "*** Port #{port} ***\n" begin socket = TCPSocket.open('127.0.0.1', port) fs = FCGI::FastCGISocket.new(socket) fs.send_record FCGI::BeginRequestRecord.new(1, FCGI::FCGI_RESPONDER, 0) fs.send_record FCGI::ParamsRecord.new(1, { 'SERVER_SOFTWARE' => 'FCGI ping', 'SERVER_NAME' => 'localhost', 'GATEWAY_INTERFACE' => 'CGI/1.1', 'REQUEST_METHOD' => 'HEAD', 'PATH_INFO' => '/' }) fs.send_record FCGI::ParamsRecord.new(1, {}) fs.send_record FCGI::StdinDataRecord.new(1, '') i = 0 while rec = fs.read_record print rec.flagment if i == 0 && rec.respond_to?(:flagment) i += 1 end socket.close rescue print "#{$!}\n" end end