我得到了这个用 python 编写的简单 xmlrpc 服务器脚本。我将内存限制为 512mb 以模拟脚本运行的环境。
import SimpleXMLRPCServer
import resource
MEMORY_LIMIT = 512
resource.setrlimit(resource.RLIMIT_AS, (MEMORY_LIMIT * 1048576L, -1L))
class Functions:
def foo(self, file):
print "received file"
server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 8000))
server.allow_none = True
server.register_instance(Functions())
server.serve_forever()
然后我得到了这个客户端脚本:
import xmlrpclib
import sys
client = xmlrpclib.Server('http://localhost:8000')
file = open(sys.argv[1], 'r')
binary = xmlrpclib.Binary(file.read())
client.foo(binary)
当我发送 20mb 的文件时,出现以下异常:
xmlrpclib.Fault: <Fault 1: "<type 'exceptions.MemoryError'>:">
为什么我不能将 10mb 的文件发送到具有 512mb 内存的服务器?