Php 设置Thrift后无法读取字节错误

Php 设置Thrift后无法读取字节错误,php,sockets,thrift,Php,Sockets,Thrift,我已经在本地系统上设置了Thrift——Windows7、PHP5.3.8、Apache2.2.21、Thrift 0.80、APC。 我曾尝试运行thrift编译器生成的客户机/服务器thrift程序,但这些程序都不起作用。每一个都会给我一个错误“TSocket:无法从“localhost/path\u到\u客户端端口80”读取4个字节” 我已经为PHP启用了套接字扩展,并尝试使用THttpClient和TSocket类,但这些都不起作用。 我已将协议类从TBinaryProtocol切换到T

我已经在本地系统上设置了Thrift——Windows7、PHP5.3.8、Apache2.2.21、Thrift 0.80、APC。 我曾尝试运行thrift编译器生成的客户机/服务器thrift程序,但这些程序都不起作用。每一个都会给我一个错误“TSocket:无法从“localhost/path\u到\u客户端端口80”读取4个字节”

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

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

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


我们将非常感谢您在这方面的帮助

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

  • 首先,从Thrift编译器生成PHP代码的语法是Thrift--gen PHP*:server*yourfile.Thrift。代码中缺少:server。这在节俭文件中没有提到

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

  • 您的服务器文件应该实现Thrift接口

  • 确保首先执行服务器文件来启动Thrift服务器。为ClassProcessor文件创建一个对象并打开传输层。您将在thrift php教程中找到这一点

  • 从客户机文件调用服务器函数,如示例所示

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

    问候
    Kunal

    所以您的意思是我们需要在系统中安装thrift server并启动它。然后,我们可以使用任何语言(PHP)连接hive,这取决于thrift。如果我错了,让我改正。