存档

‘socket’ 分类的存档

Swoole扩展中socket客户端的使用

2013年7月4日 没有评论

Swoole扩展提供了一个强大的socket客户端实现,支持TCP/UDP。之前文章说过PHP自带的stream函数有各种陷阱。刚刚使用PHP的socket扩展时,很容易栽在这些问题上。

Swoole扩展使用C实现了一个封装好的socket客户端,代码很健壮。以类的方式提供给大家使用。简单方便,安全可靠。代码在:https://github.com/matyhtf/php_swoole

使用方法:

$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC); //同步阻塞
$ret = $client->connect('127.0.0.1', 9501, 0.5, 0);
$client->send("hello world\n");
$data = $client->recv(1024);
echo $data;
unset($client);

类的构造方法,第一个参数是socket的类型,目前支持SWOOLE_SOCK_UDP/SWOOLE_SOCK_TCP。第二个参数SWOOLE_SOCK_SYNC表示是同步阻塞来执行的。Swoole已经设置过超时,就算没有收到数据包,在超过约定时间后也会返回的。

connect方法用来连接到Server。参数分别是Host、Port、超时时间单位是秒0.5表示500ms、是否启用UDP connect。

send方法用来发送数据,recv方法来接收数据,recv方法支持第二个参数,如果第二个参数为true,表示会等到所有数据到来才会返回。

close方法用来关闭socket,析构对象时会自动close此socket。

分类: PHP系统编程, socket 标签: