码迷,mamicode.com
首页 > Web开发 > 详细

php的异步非阻塞swoole模块使用(一)实现简易tcp服务器

时间:2019-05-07 01:44:32      阅读:303      评论:0      收藏:0      [点我收藏+]

标签:对话   占用   装机   信息   就是   终端   进程   sudo   OLE   

  • 绑定tcp服务器的地址

$swserver = new swoole_server("127.0.0.1",9501);

  • 设置tcp服务器装机容量(太危言耸听了~其实就是设置属性)

$swserver->set([

  ‘worker_num‘=>8,

  ‘max_request‘=>10000

]);

  • 读取连接请求信息---接通

$swserver->on(‘connect‘,function($swserver,$fd,$reactor_id){

  echo "server线程:{$reactor_id}受到来自客户端线程{$fd}的请求";  

});

  • 向客户端发送数据(我们姑且这样做,客户端发来什么,我们原样返回什么)

$swserver->on(‘receive‘,function($swserver,$fd,$reactor_id,$data){

  $swserver->send($fd,"服务器线程{$reactor_id}收到了来自客户端线程{$fd}的数据,并原样返回,其内容为:{$data}");

});

  • 结束与客户端的对话

$swserver->on(‘close‘,function($swserver,$fd){

  echo "服务端{$swserver}与客户端{$fd}的对话结束!";

});

  • 开启服务端

$swserver->start();

如果上机实验时提示:failed, Error: Address already in use[98]
则利用 lsof -i:端口号  查看端口上运行的进程
然后运行sudo kill -9 进程号,杀掉占用端口的进程

 

另外开启一个终端窗口,运行命令telnet 127.0.0.1 9501连接服务端

服务端显示:

[root@localhost myswoole]# php swserver2.php
server线程:2受到来自客户端线程1的请求

客户端发送信息:喜欢陈培昌,回显信息如下:

服务器线程2收到了来自客户端线程1的数据,并原样返回,其内容为:喜欢陈培昌

php的异步非阻塞swoole模块使用(一)实现简易tcp服务器

标签:对话   占用   装机   信息   就是   终端   进程   sudo   OLE   

原文地址:https://www.cnblogs.com/saintdingspage/p/10823053.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!