服务端
//创建Server对象,监听 127.0.0.1:9501端口
/*
$serv = new Server(string $host, int $port = 0, int $mode = SWOOLE_PROCESS,int $sock_type = SWOOLE_SOCK_TCP);
$host参数用来指定监听的ip地址,如127.0.0.1,或者外网地址,或者0.0.0.0监听全部地址
IPv4使用 127.0.0.1表示监听本机,0.0.0.0表示监听所有地址
IPv6使用::1表示监听本机,:: (相当于0:0:0:0:0:0:0:0) 表示监听所有地址
$mode运行的模式
SWOOLE_PROCESS多进程模式(默认)
SWOOLE_BASE基本模式
$sock_type指定Socket的类型,支持TCP、UDP、TCP6、UDP6、UnixSocket Stream/Dgram 6种
*/
$serv = new swoole_server("127.0.0.1", 9501);
//可以在初始化化是设置参数
$serv->set(array(
'reactor_num' => 2,
//监听连接进入事件 $serv->on('connect', function ($serv, $fd) { echo "Client: Connect.\n"; }); //监听数据接收事件,from_id为线程ID $serv->on('receive', function ($serv, $fd, $from_id, $data) { $serv->send($fd, "Server: ".$data); }); //监听连接关闭事件 $serv->on('close', function ($serv, $fd) { echo "Client: Close.\n"; }); //启动服务器 $serv->start();
客服端:
<?php
/*
swoole_client->__construct(int $sock_type, int $is_sync = SWOOLE_SOCK_SYNC, string $key);
$sock_type表示socket的类型,如TCP/UDP
使用$sock_type | SWOOLE_SSL可以启用SSL加密
$is_sync表示同步阻塞还是异步非阻塞,默认为同步阻塞
$key用于长连接的Key,默认使用IP:PORT作为key。相同key的连接会被复用
*/
//连接swoole tcp 服务
$client = new swolle_client(SWOOLE_SOCK_TCP);
if(!$client->connect('127.0.0.1',9501)){
echo "连接失败";die;
}
fwite(STDOUT,"请输入消息:");
//获取信息
$mag = trim(fgets(STDIN));
//发送消息给server
$client->send($msg);
//接收server数据
$result = $client->recv();
echo $result;
也可以按照文档的复制