python 10053_获取错误:[Errno 10053]尝试在http响应中发送文件时出错

在尝试使用Python的BaseHTTPRequestHandler通过HTTP响应发送大文件时遇到问题,错误表现为'errno 10053',即已建立的连接被软件在您的计算机上意外终止。这可能是由于文件读取或网络传输过程中出现的错误。为了解决这个问题,建议检查文件读取和流式传输的方法,确保正确处理大文件,并考虑使用 chunked transfer encoding 分块传输大文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我试图通过在Python中写入BaseHTTPRequestHandler的wfile变量在http响应中发送一个大文件,当我尝试这样做时,我在Python代码中总是以以下异常结束。在

error: [Errno 10053] An established connection was aborted by the software in your machine

有谁能帮我解决这个问题吗??为什么会出错?

如果在HTTP响应中发送大文件的方式不好,请建议我在哪里可以参考。在

提前谢谢!!!在import os

import urlparse

import BaseHTTPServer

from SocketServer import ThreadingMixIn

import urlparse

class Handler(BaseHTTPServer.BaseHTTPRequestHandler):

def handle(self):

BaseHTTPServer.BaseHTTPRequestHandler.handle(self)

def sendError(self, errorCode, errorMessage):

self.send_response(errorCode, errorMessage)

self.send_header("Content-type", "text/plain")

self.send_header("Content-Length", str(len(errorMessage)))

self.end_headers()

self.wfile.write(errorMessage)

def do_GET(self):

scm, netloc, path, params, query, fragment = urlparse.urlparse(self.path, 'http')

if path.find(".ld") > 0:

filename = path.rpartition("/")[2]

try:

with open(filename, 'rb') as f:

self.send_response(200, "Ok")

self.send_header("Content-type","application/octet-stream")

total_size = os.path.getsize(filename)

self.send_header("Content-Length", total_size)

self.end_headers()

self.wfile.write(f.read())

except IOError:

self.sendError(404, "Not Found")

class ThreadedHTTPServer(ThreadingMixIn, BaseHTTPServer.HTTPServer):

def __init__(self, server_address, RequestHandlerClass, bind_and_activate=True):

BaseHTTPServer.HTTPServer.__init__(self, server_address, RequestHandlerClass, bind_and_activate)

def main():

Handler.close_connection = 0

Handler.protocol_version = 'HTTP/1.1'

global httpd

httpd = ThreadedHTTPServer(("", 8900), Handler)

httpd.daemon_threads = True

httpd.serve_forever()

if __name__ == "__main__":

main()

错误跟踪:

^{pr2}$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值