swoole如何实现局域网打洞?这样外网通过端口可直接与局域网内通讯?
网友回复
首先是服务端,一定要位于公网上,我们以udp为例,其实tcp也是一样的,代码如下:
<?php $arr = []; $server = new Swoole\Server('0.0.0.0', 9503, SWOOLE_PROCESS, SWOOLE_SOCK_UDP); $server->set([ "worker_num" => 1 ]); $server->on('packet', function ($server, $data, $clientInfo) use (&$arr){ $list = explode("\n", $data); foreach ($list as $value) { $data = json_decode($value, 1); if ($data) { if ($data["do"] == "reg") { $arr[$data["user"]] = $clientInfo; var_dump($arr); $server->sendTo($clientInfo['address'], $clientInfo['port'], "Server:"); // $server->send($fd, "ok\n"); } else if ($data["do"] == "get") { $server->sendTo($clientInfo['address'], $clientInfo['port'], ...
点击查看剩余70%