Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3';s http.server.HTTPServer在本地主机上有一秒钟的延迟_Python_Basehttpserver - Fatal编程技术网

Python 3';s http.server.HTTPServer在本地主机上有一秒钟的延迟

Python 3';s http.server.HTTPServer在本地主机上有一秒钟的延迟,python,basehttpserver,Python,Basehttpserver,我有一个客户端和一个服务器在同一个盒子上运行。客户端能够向外部URL发出urllib.request.request()命令,并在大约0.1秒内获得响应,速度足够快,作为一个用户,我没有注意到任何真正的延迟。当向我的本地http.server.HTTPServer()发出Request()时,在调用urllib.Request.urlopen()的客户端和服务器的do_GET(self)甚至获取请求之间都有1秒的延迟 我看到一些答案表明,这是DNS查找日志记录的问题,覆盖地址字符串(self)可

我有一个客户端和一个服务器在同一个盒子上运行。客户端能够向外部URL发出
urllib.request.request()
命令,并在大约0.1秒内获得响应,速度足够快,作为一个用户,我没有注意到任何真正的延迟。当向我的本地
http.server.HTTPServer()
发出
Request()
时,在调用
urllib.Request.urlopen()
的客户端和服务器的
do_GET(self)
甚至获取请求之间都有1秒的延迟

我看到一些答案表明,这是DNS查找日志记录的问题,覆盖
地址字符串(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服务器一样快。

好的,看来这可能是Python版本的问题

在运行Python3.5.2 for Windows时,我会得到1秒的延迟。
运行适用于Ubuntu的Python 3.4.3(从技术上讲,适用于Windows的Ubuntu)不会有任何延迟。

这可能看起来很奇怪,但请尝试在客户端使用127.0.0.1而不是localhost

我在Windows10版本1809上也遇到了同样的问题。python flask服务器和本机应用程序都在
localhost
上响应,延迟为5、150或300毫秒(按顺序依次)。将其切换到
127.0.0.1
将其降低到一致的5ms