2016-06-08 62 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) 
} 

作品。