Windows 7中的慢速XMLRPCXMLRPC.NET文件

2024-10-01 15:49:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在考虑使用XML-RPC.NET用Python编写的XML-RPC与Linux服务器通信。我已经尝试了一个来自Cook Computing的XML的示例应用程序(MathApp)-RPC.NET但是在同一个局域网内加上两个号码需要30秒。在

我还尝试在Windows7上运行一个用Python编写的简单客户端来调用同一个服务器,它在5秒钟内就响应了。这台机器有4GB内存,处理能力相当,所以这不是问题。在

然后我尝试用Java和PHP从windowsxp系统调用服务器。两种反应都很快,几乎是瞬间。服务器在本地主机上的响应也很快,所以我不认为延迟是由服务器引起的。在

我的google搜索返回了一些关于Windows使用IPv6的问题,但是我们对服务器的调用确实包含了同一子网中的IPv4地址(而不是主机名)。不管怎么说,我关闭了IPv6,但没什么改变。在

有没有其他方法可以检查延迟的可能原因?在


Tags: 服务器应用程序客户端示例netlinuxxmlrpc
2条回答

在客户机上运行数据包捕获,检查网络流量计时与函数调用时间的对比。在

这可能有助于您确定慢进程中延迟的位置,例如应用程序启动时间、名称解析等

如何从客户机寻址服务器?通过IP?按FQDN?您使用的每个应用程序的寻址方法是否相同?在

如果从同一个慢速应用程序多次调用同一个远程过程,所花费的时间是否呈线性增加?在

存在影响BaseHTTPServer及其子类(包括SimpleXMLRPCServer)的{a1}。基本上,您的服务器可能会为它试图记录的每个IP地址调用socket.getfqdn函数。这个article可能更好地解释了这一点。在

对于TL;DR,解决方法如下:

import BaseHTTPServer
def not_insane_address_string(self):
    host, port = self.client_address[:2]
    return '%s (no getfqdn)' % host #used to call: socket.getfqdn(host)
BaseHTTPServer.BaseHTTPRequestHandler.address_string = \
    not_insane_address_string

相关问题 更多 >

    热门问题