IO::Socket::UNIX - AF_UNIX 域套接字的对象接口
use IO::Socket::UNIX;
my $SOCK_PATH = "$ENV{HOME}/unix-domain-socket-test.sock";
# Server:
my $server = IO::Socket::UNIX->new(
Type => SOCK_STREAM(),
Local => $SOCK_PATH,
Listen => 1,
);
my $count = 1;
while (my $conn = $server->accept()) {
$conn->print("Hello " . ($count++) . "\n");
}
# Client:
my $client = IO::Socket::UNIX->new(
Type => SOCK_STREAM(),
Peer => $SOCK_PATH,
);
# Now read and write from $client
IO::Socket::UNIX
提供了在 AF_UNIX 域中创建和使用套接字的对象接口。它建立在 IO::Socket 接口之上,并继承了 IO::Socket 定义的所有方法。
创建一个 IO::Socket::UNIX
对象,它是一个指向新创建的符号的引用(参见 Symbol 包)。new
可选地接受参数,这些参数是键值对。
除了 IO::Socket 接受的键值对之外,IO::Socket::UNIX
还提供。
Type Type of socket (eg SOCK_STREAM or SOCK_DGRAM)
Local Path to local fifo
Peer Path to peer fifo
Listen Queue size for listen
如果构造函数只传递一个参数,则假定该参数是 Peer
规范。
如果提供了Listen
参数,但值为假,则队列大小将设置为 5。
如果构造函数失败,它将返回undef
并将$IO::Socket::errstr
包变量设置为包含错误消息。
$sock = IO::Socket::UNIX->new(...)
or die "Cannot create socket - $IO::Socket::errstr\n";
出于遗留原因,错误消息也会被设置到全局$@
变量中,您可能还会发现旧代码会在这里查找错误消息。
$sock = IO::Socket::UNIX->new(...)
or die "Cannot create socket - $@\n";
Graham Barr。目前由 Perl 维护者维护。请在 https://github.com/Perl/perl5/issues 报告所有错误。
版权所有 (c) 1996-8 Graham Barr <[email protected]>。保留所有权利。本程序是自由软件;您可以在 Perl 本身的相同条款下重新发布和/或修改它。