我有一个客户端和一个服务器在同一个盒子上运行。客户端能够向urllib.request.Request()
外部 URL 发出命令并在大约 0.1 秒内得到响应,速度足够快,作为用户,我没有注意到任何真正的延迟。Request()
当向我的本地发出 a时,客户端调用和服务器甚至收到请求http.server.HTTPServer()
之间会有 1 秒的延迟。urllib.request.urlopen()
do_GET(self)
我看到一些答案表明这是用于记录的 DNS 查找问题,并且覆盖address_string(self)
可以解决它,但无论是否修改,我仍然看到完全相同的延迟。
服务器:
import http.server
import time
class MyHTTPHandler(http.server.BaseHTTPRequestHandler):
def do_GET(self):
start = time.time()
print(start)
self.send_response(200)
self.end_headers()
def address_string(self):
host, port = self.client_address[:2]
return host
server = http.server.HTTPServer(('localhost', 9999), MyHTTPHandler)
try:
server.serve_forever()
except KeyboardInterrupt:
print('Stopping server')
客户:
import urllib.request
import urllib.error
import time
def send_data():
start = time.time()
r = urllib.request.Request(url='http://localhost:9999')
print(time.time())
urllib.request.urlopen(r)
print(time.time() - start)
while True:
input('Press enter to send')
send_data()
有什么想法我想摆脱那一秒钟的延迟吗?我希望这个基本服务器的响应速度至少与 Web 服务器一样快。