stream_socket_pair
stream_socket_pair
(PHP 5 >= 5.1.0, PHP 7)
stream_socket_pair - 创建一对连接的,不可区分的套接字流
描述
array stream_socket_pair ( int $domain , int $type , int $protocol )
stream_socket_pair()
创建一对连接的,不可区分的套接字流。该功能通常用于IPC(进程间通信)。
参数
domain
要使用的协议族:STREAM_PF_INET
,STREAM_PF_INET6
或STREAM_PF_UNIX
type
要使用的通信类型:STREAM_SOCK_DGRAM
,STREAM_SOCK_RAW
,STREAM_SOCK_RDM
,STREAM_SOCK_SEQPACKET
或STREAM_SOCK_STREAM
protocol
要使用的协议:STREAM_IPPROTO_ICMP
,STREAM_IPPROTO_IP
,STREAM_IPPROTO_RAW
,STREAM_IPPROTO_TCP
或STREAM_IPPROTO_UDP
注意
:请查阅Streams常量列表以获取每个常量的更多详细信息。
返回值
使用两个套接字资源成功或FALSE
失败时返回一个数组。
更新日志
版本 | 描述 |
---|---|
5.3.0 | 此功能现在可在Windows平台上使用。 |
示例
示例#1一个stream_socket_pair()示例
这个例子显示了进程间通信中stream_socket_pair()
的基本用法。
<?php
$sockets = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, STREAM_IPPROTO_IP
$pid = pcntl_fork(
if ($pid == -1) {
die('could not fork'
} else if ($pid) {
/* parent */
fclose($sockets[0]
fwrite($sockets[1], "child PID: $pid\n"
echo fgets($sockets[1]
fclose($sockets[1]
} else {
/* child */
fclose($sockets[1]
fwrite($sockets[0], "message from child\n"
echo fgets($sockets[0]
fclose($sockets[0]
}
?>
上面的例子会输出类似于:
child PID: 1378
message from child
← stream_socket_get_name
stream_socket_recvfrom →