gpt4 book ai didi

delphi - ssl httpserver 抛出 'Access violation at address 00000000. Read of address 00000000' 错误

转载 作者:行者123 更新时间:2023-12-02 07:25:02 40 4
gpt4 key购买 nike

此代码在运行时抛出“地址 00000000 处的访问冲突。读取地址 00000000”错误。我正在尝试让服务器接受 ssl 请求,但遇到了真正的麻烦。

我还将 ssleay32.dll 和 libeay32.dll 保存在调试文件夹中。任何帮助表示赞赏:

ServerIOHandler := TIdServerIOHandlerSSLOpenSSL.Create;

ServerIOHandler.SSLOptions.Method := sslvSSLv23;
ServerIOHandler.SSLOptions.Mode := sslmClient;
ServerIOHandler.SSLOptions.VerifyMode := [];
ServerIOHandler.SSLOptions.VerifyDepth := 0;

server:=TIdHTTPServer.Create;
server.IOHandler := ServerIOHandler;
server.DefaultPort:=port;
server.Bindings.DefaultPort:=port;

server.OnQuerySSLPort(8092, newBool); //this is the line that throws the error

server.AutoStartSession:=true;
server.OnCommandGet:=idhttpserver1commandget;
server.SessionTimeOut:=360;
server.Active:=True;

最佳答案

您收到此错误的原因是 OnQuerySSLPort 是一个事件,您尚未为其分配处理程序。

OnQuerySSLPort 的要点是,应该编写一个方法,然后将其分配给 TIdHTTPServer< 的此属性/ 对象。 然后这个方法(编写的)将在每次事件触发时执行:

procedure TForm5.MyHandler(APort: TIdPort; var VUseSSL: Boolean);
begin
// Do something
end;

procedure TForm5.FormCreate(Sender: TObject);
begin
server := TIdHTTPServer.Create;
server.OnQuerySSLPort := MyHandler;
...
end;

您可能更熟悉其他事件,例如 TForm.OnCreateTTimer.OnExecute 等。这些事件的工作方式相同:编写一段代码,然后对象在适当的时间到来时执行该代码。

关于delphi - ssl httpserver 抛出 'Access violation at address 00000000. Read of address 00000000' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16336178/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com