如何获得套接字类型?

时间:2011-01-15 14:48:50

标签: php sockets tcp udp

我有一个类,希望得到一个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.");
    }
}

非常感谢

1 个答案:

答案 0 :(得分:2)

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