大原です。

gotoken / math.sci.hokudai.ac.jp (GOTO Kentaro) さんの、
"Fri, 10 Sep 1999 01:23:17 +0900" にだした、
「[ruby-list:16677] Matz's talk in Sapporo」というメールにて…… :

> 定義については、
> http://www.netlab.co.jp/ruby/jp/yasugi.mgp
> などを見てもらうとして、

細かい話しですいませんが、いつも気になっているのですが、
プログラミングの例に上がっている httpget.rb って、
port 番号を指定した時、ちゃんと動いていませんよね?

というわけで、port 番号を解釈する httpget.rb です。
# もっと短くできますが、とりあえず、このくらいで。


#!/usr/local/bin/ruby
require 'socket'				 # socket ライブラリを読込み、
if ARGV[0] =~ %r#http://([^:/]+)(:\d+)?(/.*)?$#i # コマンドラインの URL から、
  host = $1					 # host と、
  port = ($2) ? $2.delete(":").to_i : 80	 # port 番号と、
  path = ($3) ? $3 : "/"			 # path を得て、
  s = TCPSocket::open(host, port)		 # socket を open したら、
  s.print "GET #{path} HTTP/1.0\r\n\r\n"	 # GET コマンドを発行して、
  s.readline("\r\n\r\n")			 # Header 部分を読み飛ばして、
  print s.read					 # Body を標準出力に吐いたら、
end						 # おしまい。


----
OHARA Shigeki (大原重樹) <os / iij.ad.jp>