function bind()
    {
        $sockUri = $this->getServerAddress();

        // knowing transport/wrapper:
        $scheme  = parse_url($sockUri, PHP_URL_SCHEME);
        if (!in_array($scheme, stream_get_transports()))
            throw new \Exception(sprintf(
                'Transport "%s" not supported.'
                , $scheme
            ));

        if ($scheme == 'udp')
            $socket = @stream_socket_server($sockUri, $errno, $errstr, STREAM_SERVER_BIND);
        else
            $socket = @stream_socket_server($sockUri, $errno, $errstr);

        if (!$socket)
            throw new \Exception(sprintf(
                'Server %s, %s.'
                ,$this->getServerAddress()
                ,$errstr
            ), $errno);

        $this->__socket_connected = $socket;
        return $this;
    }