TsgcQUICClient, bir sunucuya QUIC bağlantısı açan ve QUIC akışları üzerinden veri alışverişi yapan düşük seviyeli bir QUIC istemcisidir (RFC 9000).
TsgcQUICClient, RFC 9000'de tanımlanan taşımayı uygulayan düşük seviyeli bir QUIC istemcisidir. Bir sunucuya QUIC bağlantısı açar ve QUIC akışları üzerinden veri alışverişi yapar; OpenSSL 3.5 veya üzeri tarafından sağlanan QUIC uygulaması üzerine kuruludur. Bu bileşeni yapılandırmak için aşağıdaki adımları izleyin:
1. TsgcQUICClient bileşeninin yeni bir örneğini oluşturun ve QUIC sunucusunun Host ve Port'unu ayarlayın.
2. OnQUICConnect olayını işleyin, Active'i True olarak ayarlayarak bağlantıyı açın ve WriteData ile veri gönderin. örnek:
oClient := TsgcQUICClient.Create(nil);
oClient.Host := 'www.example.com';
oClient.Port := 443;
oClient.SSLQUIC := True;
oClient.OnQUICConnect := OnQUICConnectEvent;
oClient.Active := True;
oClient.WriteData('Hello QUIC');
procedure OnQUICConnectEvent(Sender: TObject; const
Connection: TsgcQUICConnectionClient);
begin
ShowMessage('Connected to QUIC server');
end;
| Name | Açıklama |
|---|---|
| Active | Uzak sunucuya olan QUIC bağlantısını açar veya kapatır. |
| Host | İstemcinin bağlanacağı QUIC sunucusunun IP adresi veya DNS adı. |
| Port | QUIC sunucusuna bağlanmak için kullanılan UDP portu. |
| SSLQUIC | QUIC'in gerektirdiği TLS 1.3 güvenli katmanını etkinleştirir (varsayılan olarak etkin). |
| QUICOptions | QUIC taşıması için istemci taraflı ayarlama seçenekleri. |
| Name | Açıklama |
|---|---|
| Connect | Sunucuya olan QUIC bağlantısını açar ve kurulana ya da zaman aşımı dolana kadar bekler. |
| Disconnect | Sunucuya olan QUIC bağlantısını kapatır. |
| WriteData | Varsayılan QUIC akışı üzerinden sunucuya veri gönderir. |
| OpenStream | Yeni bir QUIC akışı açar ve üzerinden veri gönderilebilmesi için döndürür. |
| Name | Açıklama |
|---|---|
| OnQUICConnect | İstemci QUIC sunucusuna başarıyla bağlandıktan hemen sonra tetiklenir. |
| OnQUICDisconnect | QUIC bağlantısı kapatıldığında tetiklenir. |
| OnQUICException | QUIC bağlantısında özel durum oluştuğunda tetiklenir. |
oClient := TsgcQUICClient.Create(nil);
oClient.Host := 'www.example.com';
oClient.Port := 443;
oClient.SSLQUIC := True;
oClient.OnQUICConnect := OnQUICConnectEvent;
oClient.OnQUICDisconnect := OnQUICDisconnectEvent;
oClient.OnQUICException := OnQUICExceptionEvent;
if oClient.Connect then
begin
oClient.WriteData('Hello QUIC');
oClient.Disconnect;
end;
procedure OnQUICConnectEvent(Sender: TObject; const Connection: TsgcQUICConnectionClient);
begin
Log('connected');
end;
procedure OnQUICDisconnectEvent(Sender: TObject; const Connection: TsgcQUICConnectionClient; const Code: Integer);
begin
Log('disconnected, code ' + IntToStr(Code));
end;
procedure OnQUICExceptionEvent(Sender: TObject; E: Exception);
begin
Log('error: ' + E.Message);
end;
iohOpenSSL ile OpenSSL 3.5 veya üzeri gerektirir; motor otomatik seçilir: OpenSSL yerleşik QUIC yığınını dışa aktarıyorsa qmBuiltin, aksi halde OpenSSL 3.5 QUIC TLS API'sini dışa aktarıyorsa yedek olarak sgc motoru qmCustom kullanılır.SSLQUICOptions.IOHandler = iohNativeTLS ile sgc motoru her zaman kullanılır ve TLS 1.3 el sıkışması yerel TLS motoru üzerinde çalışır; paket koruması da yereldir, bu yüzden OpenSSL hiç yüklenmez. Motor karşılaştırması için bkz. QUIC.