protected static function connect($host, $port = 21, $timeout = self::FTP_TIMEOUT) { self::_resetError(); $err_no = 0; $err_msg = ''; self::$controlSocket = @fsockopen($host, $port, $err_no, $err_msg, $timeout) or self::_setError(-1, 'fsockopen failed'); if ($err_no != 0) { self::_setError($err_no, $err_msg); } if (self::_isError()) { return false; } @socket_set_timeout(self::$controlSocket, $timeout) or self::_setError(-1, 'socket_set_timeout failed'); if (self::_isError()) { return false; } self::_waitForResult(); if (self::_isError()) { return false; } return self::getLastResult() == self::FTP_SERVICE_READY; }