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%


