首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

stream_socket_pair

(PHP 5 >= 5.1.0, PHP 7)

stream_socket_pair - 创建一对连接的,不可区分的套接字流

描述

代码语言:javascript
复制
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()的基本用法。

代码语言:javascript
复制
<?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]);
}

?>

上面的例子会输出类似于:

代码语言:javascript
复制
child PID: 1378
message from child

← stream_socket_get_name

stream_socket_recvfrom →

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com