2011/12/01(木)[Perl5] 騙されたなぁorz
2017/10/12 04:44
use IO::Socket;
unlink "/tmp/mysock";
$server = IO::Socket::UNIX->new(LocalAddr => "/tmp/mysock",
Type => SOCK_DGRAM,
Listen => 5 )
or die $@;
$client = IO::Socket::UNIX->new(PeerAddr => "/tmp/mysock",
Type => SOCK_DGRAM,
Timeout => 10 )
or die $@;
しかし、はっきり言って騙されました。
見かけ上は起動するけれど、実際はソケットファイルが作成されないです。
これが、現行で正しい例:
use IO::Socket
my $socket_path = '/tmp/wibble';
unlink($socket_path);
my $server = IO::Socket::UNIX->new( Type => SOCK_STREAM,
Local => $socket_path,
Listen => 5 )
or die("Can't create server socket: $!\n");
my $sock = $server->accept() or die("Can't accept connection: $!\n");
my $client = IO::Socket::UNIX->new( Type => SOCK_STREAM,
Peer => $socket_path, )
or die("Can't connect to server: $!\n");
LocalAddr ではなく Local 、 PeerAddr ではなく、Peer です。今更ながら気付いたのですが、Perl CookBook 第一版 は、2001年刊行の本でした。
Perl 4 から Perl 5 に移行して間もない頃で、確かにハッシュパラメータ名などは違っていたかも・・・です。