QuickStart
Yeniden derleyin, ardından TLS 1.3'e ulaşın
İlk sekme, mevcut projenizin zaten nasıl göründüğüdür. İkincisi eklemeye değer tek yeni satırdır. Üçüncüsü stok Indy'de değil sgcIndy'de olduğunuzu kanıtlar.
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdHTTP, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL,
IdSSLOpenSSL, IdSSLOpenSSLHeaders, StdCtrls;
Mevcut projeniz zaten böyle görünüyor ve mesele de bu. sgcIdTCPClient yoktur ve TsgcIdSSLIOHandlerSocketOpenSSL yoktur, çünkü kitaplıktaki hiçbir unit ve hiçbir sınıf sgc öneki taşımaz. Kurun, yeniden derleyin, bitti.
procedure TFRMHttpClient.btnGoToClick(Sender: TObject);
var
oStream: TStringStream;
begin
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.APIVersion := sslvAPI_3_0;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1_3;
oStream := TStringStream.Create('');
try
IdHTTP1.Get(txtURL.Text, oStream);
finally
FreeAndNil(oStream);
end;
end;
TIdSSLAPIVersion, sslvAPIDefault, sslvAPI_1_0, sslvAPI_1_1 ve sslvAPI_3_0 üyelerine sahiptir. Ne tür ne de özellik stok Indy'de vardır; bu da bu kod parçasını hangi kitaplığa karşı derlediğinizin derleme zamanı kanıtı yapar.
procedure TfrmTCPClient.btnConnectClick(Sender: TObject);
begin
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.APIVersion := sslvAPI_3_0;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1_3;
IdTCPClient1.Host := txtHost.Text;
IdTCPClient1.Port := StrToInt(txtPort.Text);
IdSSLIOHandlerSocketOpenSSL1.PassThrough := False;
IdTCPClient1.Connect;
end;
procedure TfrmTCPClient.btnDisconnectClick(Sender: TObject);
begin
IdTCPClient1.Disconnect;
end;
Aynı bileşenler, aynı özellikler, aynı palet sayfası. PassThrough := False, tıpkı stok Indy'de olduğu gibi düz soketi bir TLS soketine dönüştüren şeydir. Okumak IdTCPClient1.IOHandler.ReadLn, yazmak IOHandler.Write ile yapılır, değişmeden.