perlによるhttpクライアント鯖
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/09/13 11:34ID:C1ttM4R.use Socket; # Socket モジュールを使う
# HTTP プロトコルを使う
$port = getservbyname('http','tcp');
# ホスト名を、IP アドレスの構造体に変換
$iaddr = inet_aton("www.cs.gunma-u.ac.jp")
or die "www.cs.gunma-u.ac.jpは存在しないホストです。\n";
# ポート番号と IP アドレスを構造体に変換
$sock_addr = pack_sockaddr_in($port,$iaddr);
# ソケット生成
socket(SOCKET,PF_INET,SOCK_STREAM,0)
or die "ソケットを生成できません。\n";
# 指定のホストの指定のポートに接続
connect(SOCKET,$sock_addr)
or die "www.cs.gunma-u.ac.jpのポート$portに接続できません。\n";
# ファイルハンドル SOCKET をバッファリングしない
select(SOCKET); $|=1; select(STDOUT);
# WWWサーバにHTTPリクエストを送る
print SOCKET "GET /index.html HTTP/1.0\r\n";
print SOCKET "\r\n";
# ヘッダ部分を受け取る
while (<SOCKET>){
# 改行のみの行ならループを抜ける
m/^\r\n$/ and last;
}
# ボディ部分を受け取り、表示
while (<SOCKET>){
print $_;
}
どこかまちがってる?
0002名無しさん@お腹いっぱい。
01/09/13 11:37ID:AkVJA0gA0003名無しさん@お腹いっぱい。
01/09/13 11:38ID:???0004名無しさん@お腹いっぱい。
01/09/13 11:58ID:???---------------------終了---------------------
0005名無しさん@お腹いっぱい。
01/09/13 12:40ID:???__DATA__
0006某CGIサーバ
01/09/14 02:25ID:???何でモジュール使わずにわざわざ間違えた手続きをしたがるのか、、
バカにソケット、キチガイにフォーク、
全部止める事に決まりました。
0007名無しさん@お腹いっぱい。
01/09/14 02:43ID:???0008名無しさん@お腹いっぱい。
01/09/14 03:40ID:kJcR0vHMシェルではなく、CGIなので
#!/usr/bin/perl
BEGIN{$| = *;
print"**************";
open(********;}
use Socket;
##以下略
てなかんじで動きます。一部隠しておきました。
0010名無しさん@お腹いっぱい。
01/09/14 05:35ID:???0011名無しさん@お腹いっぱい。
01/09/14 07:05ID:???素晴らしいですね、クライアント鯖。
ついでに、#!/usr/bin/perl -ワラ にして下さい。
今後の活躍も期待していますよ。
0012名無しさん@お腹いっぱい。
01/09/16 10:55ID:???モード切替とかして。
■ このスレッドは過去ログ倉庫に格納されています