【问题标题】:Could not read bytes ERROR after setting up Thrift设置 Thrift 后无法读取字节错误
【发布时间】:2012-05-19 09:21:32
【问题描述】:

我已经在我的本地系统上设置了 Thrift - windows 7 , PHP 5.3.8, Apache 2.2.21, Thrift 0.80,APC 。 我试图运行从 Thrift 编译器生成的客户端/服务器节俭程序,但是这些程序都不起作用。每个都给我一个错误'TSocket:无法从“localhost / path_to_client port 80”读取4个字节'。

我为 PHP 启用了 Socket 扩展,并尝试使用 THttpClient 和 TSocket 类,但这些都不起作用。 我已将协议类从 TBinaryProtocol 切换到 TBinaryProtocolAccelerated,但没有任何结果。

我浏览了 Thrift 的核心类,我发现“_handle”实际上并不指向文件,而是指向“localhost”。我试过给它一个文件路径,但它仍然不起作用。

我在 Socket 编程方面没有太多经验,但是我觉得我做的大部分事情都是正确的。

我们将非常感谢您对此提供的帮助。

【问题讨论】:

    标签: php sockets thrift


    【解决方案1】:

    我能够解决这个问题,方法如下-:

    1. 首先,从 Thrift 编译器生成 PHP 代码的语法是 thrift --gen php*:server* yourfile.thrift 。我在代码中缺少 :server 。 Thrift 文档中没有提到这一点

    2. 将 Thrift 编译器生成的 PHP 文件包含在您的客户端和服务器文件中。

    3. 您的服务器文件应该实现 Thrift 接口。

    4. 确保首先执行服务器文件来启动 Thrift 服务器。创建您的classProcessor 文件的对象并打开传输层。你会在 thrift php 教程中找到这个。

    5. 从您的客户端文件调用服务器函数,如示例中所示。

    注意-确保您充分了解 Thrift 中的函数返回类型。

    问候 库纳尔

    【讨论】:

    • 所以你的意思是我们需要在系统中安装thrift服务器并启动它。然后我们可以根据节俭使用任何语言(PHP)连接配置单元。如果我错了,让我纠正。
    猜你喜欢
    • 2019-03-10
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多