免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2284 | 回复: 0
打印 上一主题 下一主题

[FastDFS] PHP连接客户端的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-13 14:47 |只看该作者 |倒序浏览
本帖最后由 jackluo2013 于 2014-11-13 15:06 编辑

同一个页面多次刷新几次,就出现了这个问题
[2014-11-13 14:34:36] ERROR - file: tracker_client.c, line: 863, send data to tracker server 192.168.1.7:22122 fail, errno: 9, error info: Bad file descriptor
[2014-11-13 14:34:36] ERROR - file: connection_pool.c, line: 110, connect to :0 fail, errno: 22, error info: Invalid argument
[2014-11-13 14:34:36] ERROR - file: tracker_client.c, line: 863, send data to tracker server 192.168.1.7:22122 fail, errno: 9, error info: Bad file descriptor
=====================================================================================
Fatal error: Uncaught exception 'Exception' with message 'cannot connect to storage server: :[Invalid argument' in /home/wwwroot/ifast.php:48 Stack trace: #0
=================================================================================================
[2014-11-13 14:35:33] ERROR - file: storage_nio.c, line: 282, client ip: 192.168.1.3, recv timeout, recv offset: 0, expect length: 0
[2014-11-13 14:35:34] ERROR - file: storage_nio.c, line: 282, client ip: 192.168.1.3, recv timeout, recv offset: 0, expect length: 0
[2014-11-13 14:35:35] ERROR - file: storage_nio.c, line: 282, client ip: 192.168.1.3, recv timeout, recv offset: 0, expect length: 0
================================================================================================
PHP客户端是这样子写的
-----------------------------------------------------------------------------------------------------------------------------
<?php
class IFdfs
{
        static $_instance;                //单例
        private        $_fdfs;                        //FastDFS 类对象
        private        $tracker_host;        //tracker ip_addr
        private        $tracker_port;        //tracker port
        private        $group = null;        //storage中的组名,可以为空
        private        $tracker;                //type:array 客户端连接跟踪器(tracker)返回的tracker服务端相关信息
        private        $storage;                //type:array 客户端连接存储节点(storage)返回的storage服务端相关信息
        private        $debug = true; //错误控制false/true
        /*
        localfile        本地文件
        group                组名
        remotefile 、 masterfile        远程文件(服务器上的文件)
        file_id        、 masterfile_id        文件id : file_id(masterfile_id)= group/remotefile(或masterfile)
        $prefixname        从文件的标识
        file_ext        文件的后缀名,不包含点'.'
        meta                文件属性列表,可以包含多个键值对
        */
        /**
        * 构造方法
        */
        private function __construct()
        {

                if (!extension_loaded('fastdfs_client')){
                        throw new Exception('系统未安装FastDFS扩展');
                        //ie('系统未安装FastDFS扩展');
                }
                $this->_fdfs = new FastDFS();
        // get a connected tracker server
        $this->tracker = $this->_fdfs->tracker_get_connection();
        if (!$this->tracker) {
            throw new Exception('cannot connect to tracker server:[' .  $this->_fdfs->get_last_error_no() . '] ' . $this->_fdfs->get_last_error_info());
        }

        // get the storage server info and connect to it
        $this->storage = $this->_fdfs->tracker_query_storage_store();
        $this->server = $this->_fdfs->connect_server($this->storage['ip_addr'], $this->storage['port']);
        if ($this->server === false) {
            //这儿就要报错了
            throw new Exception('cannot connect to storage server' . $this->storage['ip_addr'] . ':' . $this->storage['port'] .  ' :[' . $this->_fdfs->get_last_error_info());
            $this->halt();
        }
        $this->storage['sock'] = $this->server['sock'];
        }
        public static function getInstance()        {
                if(        ! (self:_instance        instanceof self) ) {
                        self:_instance = new self();
                }
                return self:_instance;
        }
        private        function  __clone(){}
}
//调用
$fastdfs = IFdfs::getInstance();
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP