Aerys\WatcherProcess::canReusePort PHP Method

canReusePort() private method

private canReusePort ( )
    private function canReusePort()
    {
        if (stripos(PHP_OS, "WIN") === 0) {
            return true;
        }
        $flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN;
        $ctx = stream_context_create(["socket" => ["so_reuseport" => true]]);
        if (!($sock1 = @stream_socket_server('127.0.0.1:0', $errno, $errstr, $flags, $ctx))) {
            return false;
        }
        $addr = stream_socket_get_name($sock1, false);
        if (!($sock2 = @stream_socket_server($addr, $errno, $errstr, $flags, $ctx))) {
            return false;
        }
        @fclose($sock1);
        @fclose($sock2);
        return true;
    }