【问题标题】:how to get the socket type?如何获取套接字类型?
【发布时间】:2011-06-09 16:02:21
【问题描述】:

我有一个类,它期望获得一个 udp 或 tcp 套接字。

现在,我想检查一下,给班级分配了什么样的套接字。

class NetClientWriter {
    public __construct($socket=null) {
    // do we have a socket?
    if(!is_null($socket)) {
        if(!is_resource($socket) ||
           strtolower(get_resource_type($socket))!='socket') 
            throw new InvalidSocketTypeExeption("This is not a resource of type socket.");
    }
    // socket type
    if(socket_get_option($socket, SOL_SOCKET, SO_TYPE)==SOCK_STREAM) {
        echo("TCP!!!!!");
    }
    elseif(socket_get_option($socket, SOL_SOCKET, SO_TYPE)==SOCK_DGRAM) {
        echo("UDP!!!!!");
    }
    else throw new InvalidSocketTypeExeption("Invalid socket type. Just UDP and TCP sockets supported.");
    }
}

非常感谢

【问题讨论】:

    标签: php sockets tcp udp


    【解决方案1】:

    使用socket_get_option 并检查SOCK_STREAM (TCP) 与SOCK_DGRAM (UDP)。

    【讨论】:

    • 另一个问题:如何查看tcp socket是否已经连接?
    • 不确定;也许通过读取尝试获取此信息?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多