入门指引 Server Client Process AsyncIO Memory HttpServer WebSocket 高级 其他

发布于 2015-08-09 09:45:13 | 546 次阅读 | 评论: 0 | 来源: 网络整理

Swoole提供了swoole_server::addListener来增加监听的端口。业务代码中可以通过调用swoole_server::connection_info来获取某个连接来自于哪个端口。

函数原型:

void swoole_server->addListener(string $host, int $port, $type = SWOOLE_SOCK_TCP);

swoole支持的Socket类型

  • SWOOLE_TCP/SWOOLE_SOCK_TCP tcp ipv4 socket
  • SWOOLE_TCP6/SWOOLE_SOCK_TCP6 tcp ipv6 socket
  • SWOOLE_UDP/SWOOLE_SOCK_UDP udp ipv4 socket
  • SWOOLE_UDP6/SWOOLE_SOCK_UDP6 udp ipv6 socket
  • SWOOLE_UNIX_DGRAM unix socket dgram
  • SWOOLE_UNIX_STREAM unix socket stream

Unix Socket仅在1.7.1+后可用,此模式下$host参数必须填写可访问的文件路径,$port参数忽略
Unix Socket模式下,客户端$fd将不再是数字,而是一个文件路径的字符串
SWOOLE_TCP等是1.7.0+后提供的简写方式,与1.7.0前的SWOOLE_SOCK_TCP是等同的

您可以混合使用UDP/TCP,同时监听内网和外网端口。 示例:

$serv->addlistener("127.0.0.1", 9502, SWOOLE_SOCK_TCP);
$serv->addlistener("192.168.1.100", 9503, SWOOLE_SOCK_TCP);
$serv->addlistener("0.0.0.0", 9504, SWOOLE_SOCK_UDP);
$serv->addlistener("/var/run/myserv.sock", 0, SWOOLE_UNIX_STREAM);

IPv4与IPv6

  • IPv4使用 127.0.0.1表示监听本机,0.0.0.0表示监听所有地址
  • IPv6使用::1表示监听本机,:: (0:0:0:0:0:0:0:0) 表示监听所有地址
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务