网络编程:PHP 实现 “IO多路复用模型 - poll & epoll“

相关知识点

如果看不明白,可以翻开我关于网络编程的其他代码;从简单到复杂的实现

  • 进程名称设置
  • poll、epoll 事件模型
  • 基于event事件框架的事件处理

服务端代码

<?php

// 内存数据表
class Memory
{
   
    /**
     * 事件框架容器
     * @var EventBase
     */
    public static $eventBase = null;

    /**
     * event 集合
     * @var array
     */
    public static $events = [
        'socket' => null,
        'signal' => [],
        'conned' => [],
    ];

    /**
     * socket句柄
     * @var resource
     */
    public static $socket = null;

    /**
     * accept 连接集合
     * @var array
     */
    public static $connections = [];

}

// 设置进程名
cli_set_process_title("php-nio-event");

// 排除的模式
// 写入的无法使用;可用 `strace` 追踪底层运行
$conf = new EventConfig();
$conf->avoidMethod("select");
$conf->avoidMethod("poll");
//$conf->avoidMethod("epoll");

// 实例化 事件框架容器
Memory::$eventBase = new EventBase($conf);

$addr = "tcp://0.0.0.0:6666";
$mode = STREAM_SERVER_BIND|STREAM_SERVER_LISTEN;

Memory::$socket = stream_socket_server($addr, $errno, $errmsg, $mode);
if (! Memory::$socket) {
   
    die("{
     $errmsg} (
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值