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徹なので)。

[上に] [前に] [次に]