设置Thrift后无法读取字节ERROR

时间:2012-05-19 09:21:32

标签: php sockets thrift

我在本地系统上设置了Thrift - Windows 7,PHP 5.3.8,Apache 2.2.21,Thrift 0.80,APC。 我试图运行从Thrift编译器生成的客户端/服务器thrift程序,但没有一个程序工作。每一个都给我一个错误'TSocket:无法从“localhost / path_to_client端口80”'读取4个字节。

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

我已经浏览了Thrift的核心类,我发现'_handle'实际上并不指向文件,而是指向'localhost'。我试过给它一个文件路径,但它仍然无法正常工作。

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

我们将非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我能够解决这个问题,这是如何 - :

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

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

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

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

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

  6. 注意 - 确保在Thrift中充分了解函数返回类型。

    此致 KUNAL