68user's page 掲示板

Prev< No. 1659〜1660> Next  [最新発言に戻る] [過去ログ一覧]
No. 1659 # kaori [E-mail] 2001/01/25 (木) 16:12:33
  はじめまして。 kaoriと申します。

  Perl言語を勉強中です。 非常に参考になる情報をありがとうございます。
いつも感心しながら参考に勉強させてもらっています。

  どうしてもわからないので教えてください。
Socketの使い方はなんとなく判ったのですが、IPv6のSocketはどういうふうに
すればよいのでしょうか?
Socket6っていうのをインストールしてみましたが、よくわかりません。。

  私の環境は、FreeBSD-RELEASE4.1に、Perl5です。

  こんな感じで作っていて、IPv4ではちゃんと動作しています。

                $port = getservbyname($port_no,'tcp') || $port_no;
                $socket = IO::Socket::INET->new(PeerAddr => 127.0.0.1,
                                                                PeerPort => 80,
                                                                Proto => 'tcp',
                                                                );

  ご助言、よろしくお願いいたします。

No. 1660 # 68user 2001/01/25 (木) 18:52:18
>>1659 kaori
  - IPv6 環境が構築してあるか。ping6 コマンドを使って
      IPv6 で反応が返ってくるか (localhost 宛でもよい)。
  - perl が IPv6 に対応しているかどうか。perl-5.005_03 なら多分
      無理。5.6 か 5.7 で対応したかもしれません。Socket6 というのを
      使えば 5.005_03 でもいけるのかもしれませんが、僕は試したことが
      ありません。

それをクリアすれば、少しの例外を除いて基本的には書き方は同じです
(そうしないとソースレベルでの互換性が全くなくなるので)。例外と
いうのは gethostbyname の代わりに getaddrinfo を使うとか。

とりあえず perldoc Socket6 してみてください。サンプルの
ひとつでも載っているのではないでしょうか。

Prev< No. 1659〜1660> Next  [最新発言に戻る] [過去ログ一覧]