尝试从idHTTPServer下载文件。从浏览器中我可以找到localhost:7777 / files / 2019/1/7 / 1.php并最后下载文件。
但是当我以调试模式关闭服务器时,出现以下错误
EidClosedSocket,显示消息“已断开连接”
我该如何解决?
procedure TRPFiles.Download;
var
filepath: string;
begin
filepath := ExtractFileDir(Application.ExeName) + StringReplace(RequestInfo.URI, '/', '\', [rfReplaceAll]);
if TFile.Exists(filepath) then
begin
ResponseInfo.SmartServeFile(Context, RequestInfo, filepath);
FResponses.OK();
end;
end;
答案 0 :(得分:0)
没有什么要修复的。这是完全正常的行为。当您关闭服务器时,它会关闭所有仍打开的客户端套接字,从而导致这些套接字上的所有后续I / O操作失败。您仅在调试器中运行是因为看到异常。只需忽略它,然后让应用正常处理即可。服务器将在内部处理异常,因此它可以关闭管理已关闭的客户端套接字的线程。在调试器外部运行应用程序时,您不会看到异常。