2015-11-04 45 views
1

干擾我沿着這些線路的服務器:沿着這些線路Python的輸入與SimpleXMLRPCServer

from SimpleXMLRPCServer import SimpleXMLRPCServer 
def ack(msg): 
    return input("Allow? ").lower() in ['y', 'yes'] 
server = SimpleXMLRPCServer(("localhost", 8080)) 
server.register_function(ack, "ack") 
server.serve_forever() 

和客戶端:

import xmlrpclib 
proxy = xmlrpclib.ServerProxy("http://localhost:8080") 

with open(myfile) as mfd: 
    for line in mfd.readlines(): 
     if proxy.ack(line): 
      print line 

這將導致一個錯誤被髮送到客戶端。故障代碼&字符串是:

1 
<type 'exceptions.NameError'>:name 'y' is not defined 

我的假設是input在服務器端被殺死POST XML-RPC善良的消耗。

我不想用two clients and a server編碼某種方法 - 我有點像簡單的1:1設置。

真的,我打開任何替代(python)解決方案。

+0

另外:感謝您提供一個完整,簡潔的[MCVE](http://stackoverflow.com/help/mcve)。 –

回答

1

您正在使用input()您應該在哪裏使用raw_input()。試試這個:

return raw_input("Allow? ").lower() in ['y', 'yes'] 
+0

你是對的,但是從Python文檔中我不清楚*爲什麼*你是對的 - 你會不會詳細說明?謝謝!是否由於input()的'eval'部分? – thechao