使用ReactPHP套接字监听多个TCP端口

时间:2019-04-05 07:17:29

标签: php reactphp

我正在尝试在一系列TCP端口(1000到2000)上启动ReactPHP TCP套接字。所有端口都是打开的,我可以看到在使用telnet进行测试时建立的连接,但是套接字从不触发connection.on('data' ...)事件。不能使用任何类型的端口转发。 使用较小的端口范围完全是 255 而不是 1000 时,所有功能都可以正常工作。

<?php
require 'vendor/autoload.php';
$loop = React\EventLoop\Factory::create();
for ($i = 1000; $i < 2000; $i++) {
    $socket[$i] = new React\Socket\Server('127.0.0.1:' . $i, $loop);
    $socket[$i]->on('connection', function (React\Socket\ConnectionInterface $connection) {
        echo "connection happened";
        $connection->write("Hello " . $connection->getRemoteAddress() . "!\n"); // this part works 
        $connection->on('data', function ($data) use ($connection) {
            echo $data; // for some reason this never fires
        });
    });
}
$loop->run();

0 个答案:

没有答案