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 →
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com