1

我有这样的服务器:

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 的优点。

我不想用两个客户端和一个服务器编写一些方法——我有点喜欢我正在进行的简单的 1:1 设置。

真的,我对任何替代(python)解决方案持开放态度。

4

1 回答 1

1

你正在使用input()你应该使用的地方raw_input()。试试这个:

return raw_input("Allow? ").lower() in ['y', 'yes']
于 2015-11-04T23:13:22.320 回答