php使用event扩展的io复用测试的示例

2025-05-29 0 98

先要安装event扩展,这样才可以使用libevent的事件机制

?

1
pecl install event

测试代码

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62
//连接重用

//创建资源流的上下文

$context=stream_context_create([

'socket'=>[

'backlog'=>2000

]]);

stream_context_set_option($context,'socket','so_reuseaddr',1); //设置连接重用

//sock_set_option($this->server, SOL_SOCKET, SO_REUSEADDR, 1); //复用还处于 TIME_WAIT

$socket = stream_socket_server("tcp://0.0.0.0:8070", $errno, $errstr,STREAM_SERVER_BIND | STREAM_SERVER_LISTEN,$context);

stream_set_blocking($socket,false);//非阻塞

//绑定事件

$base=new EventBase();

//监听服务端的socket

$event=new Event($base,$socket,Event::PERSIST |Event::READ | Event::WRITE,function ($socket)use(&$base){

$client = stream_socket_accept($socket);

//stream_set_blocking($client,false);//非阻塞

// var_dump($client);

// $content='21335435';

// $string="HTTP/1.1 200 OK\\r\\n";

// $string.="Content-Type: text/html;charset=utf-8\\r\\n";

// $string.="Content-Length: ".strlen($content)."\\r\\n\\r\\n";

// fwrite($client,$string.$content);

// fclose($client);

//global $base;

//var_dump($socket,$client);

$base=new EventBase();

//监听客户端socket

$event=new Event($base,$client,Event::PERSIST |Event::READ | Event::WRITE,function ($client){

$msg=fread($client,65535);

//

// if($msg){ //匹配请求头包含了keep-alive

//

// }

$content='hello world';

$string="HTTP/1.1 200 OK\\r\\n";

$string.="Content-Type: text/html;charset=utf-8\\r\\n";

$string.="Connection: keep-alive\\r\\n";

$string.="Content-Length: ".strlen($content)."\\r\\n\\r\\n";

fwrite($client,$string.$content);

fclose($client);

//当socket断开连接,删除事件

$event->del();//删除事件

});

$event->add(); //加入事件监听

$base->loop();

//监视客户端

//$event->del();//删除事件

});

$event->add(); //加入事件监听

var_dump($base->loop()); //调度挂起事件监听

php使用event扩展的io复用测试的示例

php使用event扩展的io复用测试的示例

以上就是php使用event扩展的io复用测试的示例的详细内容,更多关于php io复用测试的资料请关注快网idc其它相关文章!

原文链接:https://www.cnblogs.com/taoshihan/p/12036811.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 php使用event扩展的io复用测试的示例 https://www.kuaiidc.com/91201.html

相关文章

发表评论
暂无评论