PHP
流 | Streams

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_INETSTREAM_PF_INET6STREAM_PF_UNIX

type

要使用的通信类型:STREAM_SOCK_DGRAMSTREAM_SOCK_RAWSTREAM_SOCK_RDMSTREAM_SOCK_SEQPACKETSTREAM_SOCK_STREAM

protocol

要使用的协议:STREAM_IPPROTO_ICMPSTREAM_IPPROTO_IPSTREAM_IPPROTO_RAWSTREAM_IPPROTO_TCPSTREAM_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 →