Socketを使って他のページを表示できるようになりましたが...?
[上に]
[前に]
[次に]
上野
2000/03/03(金) 10:33:20
過去ログを参考にして他のページを表示させるプログラムを
作ることができました。発言者の皆様、ありがとうございました。m(__)m
しかし、ほとんどのページはうまく表示できるのですが、
ときどきおかしな現象が起こります。
例えば、ラウンジのページ
http://www.wakusei.ne.jp/twn/wwwlng.cgi
を表示させてみたところ、
ページの頭に fe7
ページの最後に 0
が表示されました。
これは、(私にはわからないけれど(^^;)たぶん意味がある
んだと思いますが、さらに、ページの途中に
1000
という行が6行も追加されてしまいました。
他のページでも試してみましたが、どうやら文字がsjisで、表が多く使われている
ページで起こるようです。表示される文字はページによって異なっていて
他のページではf78とかffbなどが追加されました。
これらは16進数の数字のように見えますが...。
どうしたら、この余計な文字を消せるでしょうか?
どなたか教えて下さい m(__)m
なお、以下のプログラムをfreewebで動かしています。
#!/usr/local/bin/perl
$addr = (gethostbyname("www.wakusei.ne.jp"))[4];
$name = pack("S n a4 x8", 2, 80, $addr);
socket(S, 2, 2, 0);
connect(S, $name);
binmode(S);
select(S); $| = 1; select(stdout);
print S "GET /twn/wwwlng.cgi HTTP/1.1\r\n";
print S "Host:www.wakusei.ne.jp\r\n\r\n";
while (<S>) { last if /^\s*$/; }
print "Content-Type: text/html\n\n";
while (<S>) { print; }
close(S);
storms
2000/03/03(金) 22:56:26
安直な解決法:
print S "GET /twn/wwwlng.cgi HTTP/1.0\r\n";
正しい解決法:
RFC2068のTransfer-Encodingのところを良く読む。
上野
2000/03/04(土) 00:34:02
[[解決]]
stormsさん、ありがとうございました。
とりあえず、"安直な方法"で解決しました(^^;
よく見たら過去ログでも"HTTP/1.0"でした。すみません。
正しい解決方法は...時間のあるときに勉強します(^^;
少なくとも眠ってから...(2徹なので)。
[上に]
[前に]
[次に]