Swoole 中 TCP、UDP 和长连接、短连接
发布时间:2020-12-13 21:04:36 所属栏目:PHP教程 来源:网络整理
导读:TCP 服务 swoole 文档 - TCP 服务 tcp 服务端 ?php// 1. 创建 swoole 默认创建的是一个同步的阻塞tcp服务$host = "0.0.0.0"; // 0.0.0.0 代表接听所有// 默认是tcp$serv = new SwooleServer($host,9000);// 添加配置$serv-set([ 'heartbeat_idle_time' = 10
TCP 服务swoole 文档 - TCP 服务 tcp 服务端 <?php // 1. 创建 swoole 默认创建的是一个同步的阻塞tcp服务 $host = "0.0.0.0"; // 0.0.0.0 代表接听所有 // 默认是tcp $serv = new SwooleServer($host,9000); // 添加配置 $serv->set([ 'heartbeat_idle_time' => 10,'heartbeat_check_interval' => 3,]); // 2. 注册事件 $serv->on('Start',function($serv) use($host){ echo "启动 swoole 监听的信息tcp:$host:9000n"; }); //监听连接进入事件 $serv->on('Connect',function ($serv,$fd) { echo "Client: 连接成功.n"; }); //监听数据接收事件 $serv->on('Receive',$fd,$from_id,$data) { $serv->send($fd,"Server: ".$data); }); //监听连接关闭事件 $serv->on('Close',$fd) { echo "断开连接.n"; }); // 3. 启动服务器 // 阻塞 $serv->start(); // 阻塞与非阻塞
这样就创建了一个 TCP 服务器,监听本机 9000 端口。 然后先启动服务,然后再通过 telnet 命令去连接试试 php swoole_tcp_server.php # 启动 swoole 监听的信息tcp:0.0.0.0:9000 telnet 127.0.0.1 9000 # Trying 127.0.0.1... # Connected to localhost.
tcp 客户端 <?php // 同步客户端 $client = new swoole_client(SWOOLE_SOCK_TCP); //连接到服务器 if (!$client->connect('127.0.0.1',9000,0.5)) { die("connect failed."); } function order() { sleep(4);// 假设某一些操作造成时间很长 return "ordern"; } //向服务器发送数据 if (!$client->send(order())) { die("send failed."); } //从服务器接收数据 $data = $client->recv(); if (!$data) { die("recv failed."); } //关闭连接 $client->close(); // 返回结果给用户 echo '订单生成成功'."n";
运行 tcp 客户端去连接服务端,假设处理需要时间,最后就会输出订单生成成功 php swoole_tcp_client.php # 订单生成成功
UDP 服务swoole 文档 - UDP 服务 udp 服务端 <?php //创建Server对象,监听 127.0.0.1:9000端口,类型为SWOOLE_SOCK_UDP $serv = new swoole_server("0.0.0.0",SWOOLE_PROCESS,SWOOLE_SOCK_UDP); //监听数据接收事件 $serv->on('Packet',$data,$clientInfo) { $serv->sendto($clientInfo['address'],$clientInfo['port'],"Server ".$data); var_dump($clientInfo); }); echo "0.0.0.0:9000n"; //启动服务器 $serv->start();
udp 客户端 <?php $client = new swoole_client(SWOOLE_SOCK_UDP); $client->sendTo('127.0.0.1','upd'); // 接收服务端信息 $data = $client->recv(); var_dump($data);
两种协议TCP(Transmission Control Protocol 传输控制协议):是一种面向连接的,可靠的,基于字节流的传输通信协议。 UDP 服务器与 TCP 服务器不同,UDP 没有连接的概念。启动 Server 后,客户端无需 Connect,直接可以向 Server 监听的 9502 端口发送数据包。 长连接、短连接
Http长连接和TCP长连接的区别Http长连接 和 TCP长连接的区别在于: TCP 的长连接需要自己去维护一套心跳策略。,而Http只需要在请求头加入 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |