首页 » Web前端 » phpselect事宜模子技巧_68php select案例

phpselect事宜模子技巧_68php select案例

访客 2024-11-21 0

扫一扫用手机浏览

文章目录 [+]

socket_select( array &$read, array &$write, array &$except, int $tv_sec[, int $tv_usec = 0] )

个中,

phpselect事宜模子技巧_68php select案例

$read存放可读的socket凑集,即遍历那些socket读缓冲区不为空

phpselect事宜模子技巧_68php select案例
(图片来自网络侵删)

$write存放可写socket凑集,即遍历哪些socket写缓冲区为空

$except打消不进行遍历监听的socket凑集

$tv_sec韶光,单位为秒

$tv_usec韶光,单位为奇妙

默认情形,socket_select根据设置的($tv_sec+$tv_usec)进行壅塞,如都为零,则不壅塞立即返回

2、案例

创建一个tcp做事端.再利用telnet作为客户端进行测试

2.1、源码

<?php

/

Copyright (C) Iamasb

@project : 3、workerman干系知识点

@explain : select函数利用

@filename : 33、select函数利用.php

@author : xiaobei

/

// 创建tcp

if (!($resource = socket_create(AF_INET,SOCK_STREAM,SOL_TCP))) {

echo \"大众socket create is error\"大众;

exit();

}

// 绑定当前主机和端口

if (!socket_bind($resource,'0.0.0.0','1234')) {

echo \"大众socket bind is error\"大众;

exit();

}

// 启动监听

if (!socket_listen($resource)) {

echo \"大众socket listen is error\"大众;

exit();

}

// 设置端口复用

if (!socket_set_option($resource, SOL_SOCKET, SO_REUSEADDR, 1)) {

echo 'Unable to set option on socket: '. socket_strerror(socket_last_error()) . PHP_EOL;

exit;

}

$read[] = $resource;

$write = NULL;

$except = NULL;

$start = \"大众welcome to!\r\n\"大众;

$end = \"大众good bye \r\n\"大众;

while (true) {

$rst = $read;

socket_select($rst,$write,$except,0);

if (count($rst)) {

foreach ($rst as $value) {

// 判断是否是主socket,还是子socket

if ($value === $resource) {

$client = socket_accept($resource);

socket_write($client,$start,strlen($start));

$read[] = $client;

} else {

$str = trim(socket_read($value,1024));

if ($str == \公众quit\"大众) {

socket_write($value,$end,strlen($end));

socket_close($value);

$key = array_search($value,$read);

unset($read[$key]);

echo \"大众client->\"大众,$key,\"大众--> close.\公众;

}

echo \公众receive-> \"大众,$str,PHP_EOL;

}

}

}

}

2.2、测试

启动tcp做事端telnet进行连接

tcp做事端

3、总结

由上面的运行结果,可以看出,当某个telnet发起数据交互时,做事端都能够及时进行处理。
而不用等到一个socket处理完毕后,再进行。
这样大大提升了通信效率

标签:

相关文章

介绍百度码,技术革新背后的智慧之光

随着科技的飞速发展,互联网技术已经成为我们生活中不可或缺的一部分。而在这个信息爆炸的时代,如何快速、准确地获取信息,成为了人们关注...

Web前端 2025-01-03 阅读1 评论0

介绍皮箱密码,开启神秘之门的钥匙

皮箱,作为日常生活中常见的收纳工具,承载着我们的珍贵物品。面对紧闭的皮箱,许多人却束手无策。如何才能轻松打开皮箱呢?本文将为您揭秘...

Web前端 2025-01-03 阅读1 评论0

介绍盗号器,网络安全的隐忧与应对步骤

随着互联网的快速发展,网络安全问题日益突出。盗号器作为一种非法工具,对网民的个人信息安全构成了严重威胁。本文将深入剖析盗号器的原理...

Web前端 2025-01-03 阅读1 评论0