内容

名称

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 定义的所有方法。

构造函数

new ( [ARGS] )

创建一个 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";

方法

hostpath()

返回本地端 FIFO 的路径名。

peerpath()

返回对端 FIFO 的路径名。

参见

SocketIO::Socket

作者

Graham Barr。目前由 Perl 维护者维护。请在 https://github.com/Perl/perl5/issues 报告所有错误。

版权

版权所有 (c) 1996-8 Graham Barr <[email protected]>。保留所有权利。本程序是自由软件;您可以在 Perl 本身的相同条款下重新发布和/或修改它。