2016-06-08 42 views
2

没错,所以我的本地机器上有一个Thrift服务器 - 客户端系统的完整Python实现。TSocket读取0字节

它工作正常,否则,直到我尝试从服务器上的一个方法返回一个字符串。

节俭文件

service HelloWorld { 
    void ping(), 
    void sayHello(), 
    i32 sayMsg(1:string msg) 
} 

这是sayMsg这是在return语句失败。

server.py

def sayMsg(self, msg): 
    print "sayMsg(" + msg + ")" #This line runs fine 
    return "say " + msg + " from " + str(socket.gethostbyname(socket.gethostname())) 

当我运行client.py第一次,我也对server侧得到一个错误No handlers could be found for logger "thrift.server.TServer"

从下一次开始,此错误消失,但TSocket read 0 bytes仍然存在。

我哪里错了?

+0

这个问题仍然相关吗? – Shastick

回答

0

看来节俭文件错误,sayMsg回报应该是一个字符串不是int_32,改变它:

service HelloWorld { 
    void ping(), 
    void sayHello(), 
    string sayMsg(1:string msg) 
} 

作品。