【发布时间】:2020-03-19 11:03:59
【问题描述】:
我在表单上放置了 TIdHTTPServer 和 TIdServerIOHandlerSSLOpenSSL,为 TIdServerIOHandlerSSLOpenSSL 设置了证书文件路径
在 TIdHTTPServer onCommandGet 事件中,我以这种方式发送答案:
FullResponce:=RespHeaders+#13#10+RespData;
//dump for debug
FileHandle := CreateFileW('c:\lastresp.txt', GENERIC_WRITE, FILE_SHARE_READ, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
if FileHandle <> INVALID_HANDLE_VALUE then
begin
try
WriteFile(FileHandle, FullResponce[1], length(FullResponce), LongWord(ReadRes), nil);
finally
CloseHandle(FileHandle);
end;
end;
//response
AContext.Connection.IOHandler.WriteDirect(@FullResponce[1],length(FullResponce),0);
exit;
当我尝试在 Internet Explorer 中打开地址“127.0.0.1:433”时,有时会打开页面,有时会显示“无法显示页面”
这没有任何模式或逻辑,我只是在资源管理器中刷新页面 10 次,例如尝试 1,2,4,6,7,9,10 打开页面,其余以错误
lastresp.txt 中答案的副本始终正确且始终相同
当错误发生时,IE在网络控制台显示他收到0字节
任何想法如何解决这个问题?
Indy 中的错误?
更新
已解决,问题不在代码中,而是在用于控制流量的嗅探器应用中(
【问题讨论】: