使用HTMLServer时出现Python异常Errno 10054

使用HTMLServer时出现Python异常Errno 10054,python,sockets,server,socketserver,Python,Sockets,Server,Socketserver,我希望你能帮忙 我正在Windows7中使用Python 2.7.11 我有一个为HMI应用程序创建一个非常简单的Web服务器的主线程 lib.HTMLServer.start_http_服务器(I) Web服务器使用一些表单提供一些按需生成的页面 窗体使一些函数被调用,这些函数连接到其他线程 没有任何循环阻塞调用或睡眠,但有时我会遇到这个错误,这似乎是非常随机的 我不知道在何处或何时引发此异常,因为它没有到达调用它的代码行。 我在猜测超时之类的原因,但这不是错误消息中写入的错误。更奇怪的是,这

我希望你能帮忙

我正在Windows7中使用Python 2.7.11

我有一个为HMI应用程序创建一个非常简单的Web服务器的主线程

lib.HTMLServer.start_http_服务器(I)

Web服务器使用一些表单提供一些按需生成的页面

窗体使一些函数被调用,这些函数连接到其他线程

没有任何循环阻塞调用或睡眠,但有时我会遇到这个错误,这似乎是非常随机的

我不知道在何处或何时引发此异常,因为它没有到达调用它的代码行。 我在猜测超时之类的原因,但这不是错误消息中写入的错误。更奇怪的是,这似乎是随机的

然而HTML服务器并没有被中断,但是空闲的窗口变得很奇怪

远程主机是同一台计算机中指向本地主机的IE窗口

如有任何疑问、帮助或小费,将不胜感激

2016-01-26 18:39:26,515 [StateMachine DEBUG] Cambiando a : P1, ['P0'], ['v4']
2016-01-26 18:39:26,516 [Controlador DEBUG] cb[C1_MOVE]: Cambiando estado de P0 a P1 con vel=V1
127.0.0.1 - - [26/Jan/2016 18:39:26] "GET /default.css HTTP/1.1" 200 -
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 49522)
Traceback (most recent call last):
  File "C:\Python27\lib\SocketServer.py", line 295, in _handle_request_noblock
    self.process_request(request, client_address)
  File "C:\Python27\lib\SocketServer.py", line 321, in process_request
    self.finish_request(request, client_address)
  File "C:\Python27\lib\SocketServer.py", line 334, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "C:\Python27\lib\SocketServer.py", line 657, in __init__
    self.finish()
  File "C:\Python27\lib\SocketServer.py", line 716, in finish
    self.wfile.close()
  File "C:\Python27\lib\socket.py", line 283, in close
    self.flush()
  File "C:\Python27\lib\socket.py", line 307, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 10054] Se ha forzado la interrupción de una conexión existente por el host remoto
----------------------------------------
更新: -------------- 下一个表达式没有捕获任何内容。代码错误是从其他地方提取的,但应该打印出来

try:
    server.serve_forever()
except KeyboardInterrupt:
    print '^C received, shutting down the web server'
except Exception , error:
    if error.errno == errno.WSAECONNRESET:
        logging.debug(" %s %s " % ( str(e), str(e.errno)) )
        #reconnect()
        #retry_action()
    else:
        logging.debug(" %s %s " % ( str(e), str(e.errno)) )
        raise
我还有一个启动webbrowser到本地主机的进程

它也不是调用此异常的函数:

try:
    # Ejecutar navegador
    #ie = webbrowser.get(webbrowser.iexplore)
    #ie.open('localhost')
    subprocess.Popen(r'"' + os.environ["PROGRAMFILES"] + '\Internet Explorer\IEXPLORE.EXE" localhost')
except Exception , error:
    if error.errno == errno.WSAECONNRESET:
        logging.debug(" %s %s " % ( str(e), str(e.errno)) )
    else:
        logging.debug(" %s %s " % ( str(e), str(e.errno)) )
        raise

错误类型为
socket.error
。请参阅此处的文档:与主机的连接是否缓慢?我曾经遇到过这样的情况:只有当我与主机的连接不够理想时,才会发生这种类型的错误。我这样说是因为您提到此错误似乎是随机出现的。此代码没有捕获错误,因此我无法确定错误的来源。
code
try:server.serve_ever(),例外情况除外,错误:if error.errno==errno.WSAECONNRESET:logging.debug(“%s%s”%(str(e),str(e.errno)))#重新连接()#重试#操作()其他:logging.debug(“%s%s%”(str(e),str(e.errno)))最终引发:#server.socket.close()server.server#close()del server logging.info('服务器停止%s:%s'('0:0',PORT))
code
连接速度不慢,刷新速度非常快,服务器和来宾在同一个窗口中。它主要在调用启动函数时引发,该函数会引发线程进程。但是线程应该自己开始运行,当然不使用套接字。请将注释添加到主帖子中以获得正确的格式。