【问题标题】:Checking if port is used by a stream检查端口是否被流使用
【发布时间】:2014-05-29 16:21:26
【问题描述】:

我不太确定你是否明白我的标题的意思,所以我会尽量详细一点。

我使用stream_socket_server 来通过它接收数据包。不幸的是,同时我可能有更多的脚本在做同样的工作,但很自然,每个脚本都需要有不同的端口。我的问题是,如何检查端口是否被流使用?我尝试了几个脚本,但它们都不起作用。有什么想法吗?

一个例子:

stream_socket_server("udp://0.0.0.0:$port", $errno, $errstr, STREAM_SERVER_BIND)

最好的问候

【问题讨论】:

    标签: php sockets stream udp


    【解决方案1】:

    在创建流服务器之前,您可以创建流客户端并尝试连接该端口;

    $fp = stream_socket_client("tcp://0.0.0.0:$port", $errno, $errstr, 30);
    if (!$fp) {
        echo "Port is not used";
        stream_socket_server("udp://0.0.0.0:$port", $errno, $errstr, STREAM_SERVER_BIND);
    }
    

    【讨论】:

    • 我现在得到的错误是:“警告:stream_socket_client():无法连接到 tcp://0.0.0.0:33334(请求的地址在其上下文中无效。)”
    • 使用有效的 IP 地址。
    • 试过了,还是不行。我什至尝试将 tcp 更改为 udp 和我的公共 ip、apache 服务器 ip 和我的本地 ip。无效
    猜你喜欢
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多