⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socket.php

📁 This is the script which used on 10minutemail.com for temporary email.
💻 PHP
📖 第 1 页 / 共 2 页
字号:
    {        if (!is_resource($this->fp)) {            return $this->raiseError('not connected');        }        return @fread($this->fp, $size);    }    /**     * Write a specified amount of data.     *     * @param string  $data       Data to write.     * @param integer $blocksize  Amount of data to write at once.     *                            NULL means all at once.     *     * @access public     * @return mixed true on success or an error object otherwise     */    function write($data, $blocksize = null)    {        if (!is_resource($this->fp)) {            return $this->raiseError('not connected');        }        if (is_null($blocksize) && !OS_WINDOWS) {            return fwrite($this->fp, $data);        } else {            if (is_null($blocksize)) {                $blocksize = 1024;            }            $pos = 0;            $size = strlen($data);            while ($pos < $size) {                $written = @fwrite($this->fp, substr($data, $pos, $blocksize));                if ($written === false) {                    return false;                }                $pos += $written;            }            return $pos;        }    }    /**     * Write a line of data to the socket, followed by a trailing "\r\n".     *     * @access public     * @return mixed fputs result, or an error     */    function writeLine($data)    {        if (!is_resource($this->fp)) {            return $this->raiseError('not connected');        }        return fwrite($this->fp, $data . "\r\n");    }    /**     * Tests for end-of-file on a socket descriptor.     *     * Also returns true if the socket is disconnected.     *     * @access public     * @return bool     */    function eof()    {        return (!is_resource($this->fp) || feof($this->fp));    }    /**     * Reads a byte of data     *     * @access public     * @return 1 byte of data from the socket, or a PEAR_Error if     *         not connected.     */    function readByte()    {        if (!is_resource($this->fp)) {            return $this->raiseError('not connected');        }        return ord(@fread($this->fp, 1));    }    /**     * Reads a word of data     *     * @access public     * @return 1 word of data from the socket, or a PEAR_Error if     *         not connected.     */    function readWord()    {        if (!is_resource($this->fp)) {            return $this->raiseError('not connected');        }        $buf = @fread($this->fp, 2);        return (ord($buf[0]) + (ord($buf[1]) << 8));    }    /**     * Reads an int of data     *     * @access public     * @return integer  1 int of data from the socket, or a PEAR_Error if     *                  not connected.     */    function readInt()    {        if (!is_resource($this->fp)) {            return $this->raiseError('not connected');        }        $buf = @fread($this->fp, 4);        return (ord($buf[0]) + (ord($buf[1]) << 8) +                (ord($buf[2]) << 16) + (ord($buf[3]) << 24));    }    /**     * Reads a zero-terminated string of data     *     * @access public     * @return string, or a PEAR_Error if     *         not connected.     */    function readString()    {        if (!is_resource($this->fp)) {            return $this->raiseError('not connected');        }        $string = '';        while (($char = @fread($this->fp, 1)) != "\x00")  {            $string .= $char;        }        return $string;    }    /**     * Reads an IP Address and returns it in a dot formated string     *     * @access public     * @return Dot formated string, or a PEAR_Error if     *         not connected.     */    function readIPAddress()    {        if (!is_resource($this->fp)) {            return $this->raiseError('not connected');        }        $buf = @fread($this->fp, 4);        return sprintf("%s.%s.%s.%s", ord($buf[0]), ord($buf[1]),                       ord($buf[2]), ord($buf[3]));    }    /**     * Read until either the end of the socket or a newline, whichever     * comes first. Strips the trailing newline from the returned data.     *     * @access public     * @return All available data up to a newline, without that     *         newline, or until the end of the socket, or a PEAR_Error if     *         not connected.     */    function readLine()    {        if (!is_resource($this->fp)) {            return $this->raiseError('not connected');        }        $line = '';        $timeout = time() + $this->timeout;        while (!feof($this->fp) && (!$this->timeout || time() < $timeout)) {            $line .= @fgets($this->fp, $this->lineLength);            if (substr($line, -1) == "\n") {                return rtrim($line, "\r\n");            }        }        return $line;    }    /**     * Read until the socket closes, or until there is no more data in     * the inner PHP buffer. If the inner buffer is empty, in blocking     * mode we wait for at least 1 byte of data. Therefore, in     * blocking mode, if there is no data at all to be read, this     * function will never exit (unless the socket is closed on the     * remote end).     *     * @access public     *     * @return string  All data until the socket closes, or a PEAR_Error if     *                 not connected.     */    function readAll()    {        if (!is_resource($this->fp)) {            return $this->raiseError('not connected');        }        $data = '';        while (!feof($this->fp)) {            $data .= @fread($this->fp, $this->lineLength);        }        return $data;    }    /**     * Runs the equivalent of the select() system call on the socket     * with a timeout specified by tv_sec and tv_usec.     *     * @param integer $state    Which of read/write/error to check for.     * @param integer $tv_sec   Number of seconds for timeout.     * @param integer $tv_usec  Number of microseconds for timeout.     *     * @access public     * @return False if select fails, integer describing which of read/write/error     *         are ready, or PEAR_Error if not connected.     */    function select($state, $tv_sec, $tv_usec = 0)    {        if (!is_resource($this->fp)) {            return $this->raiseError('not connected');        }        $read = null;        $write = null;        $except = null;        if ($state & NET_SOCKET_READ) {            $read[] = $this->fp;        }        if ($state & NET_SOCKET_WRITE) {            $write[] = $this->fp;        }        if ($state & NET_SOCKET_ERROR) {            $except[] = $this->fp;        }        if (false === ($sr = stream_select($read, $write, $except, $tv_sec, $tv_usec))) {            return false;        }        $result = 0;        if (count($read)) {            $result |= NET_SOCKET_READ;        }        if (count($write)) {            $result |= NET_SOCKET_WRITE;        }        if (count($except)) {            $result |= NET_SOCKET_ERROR;        }        return $result;    }    /**     * Turns encryption on/off on a connected socket.     *     * @param bool    $enabled  Set this parameter to true to enable encryption     *                          and false to disable encryption.     * @param integer $type     Type of encryption. See     *                          http://se.php.net/manual/en/function.stream-socket-enable-crypto.php for values.     *     * @access public     * @return false on error, true on success and 0 if there isn't enough data and the     *         user should try again (non-blocking sockets only). A PEAR_Error object     *         is returned if the socket is not connected     */    function enableCrypto($enabled, $type)    {        if (version_compare(phpversion(), "5.1.0", ">=")) {            if (!is_resource($this->fp)) {                return $this->raiseError('not connected');            }            return @stream_socket_enable_crypto($this->fp, $enabled, $type);        } else {            return $this->raiseError('Net_Socket::enableCrypto() requires php version >= 5.1.0');        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -