Indy

Indy kütüphanesi, SMTP, POP3, IMAP, NNTP, HTTP, FTP ve çok daha fazlası dahil olmak üzere 100'den fazla üst düzey protokolün yanı sıra TCP/UDP/RAW soketleri destekleyen açık kaynaklı bir istemci/sunucu iletişim kütüphanesidir. Indy, Delphi ile yazılmıştır ancak C++Builder ve FreePascal için de mevcuttur. sgcWebSockets, bazı bileşenler için temel olarak Indy kullanır ve farklı sgcWebSockets Sürümleri Indy kütüphanesini farklı şekilde kullanır.

 

sgcWebSockets, ALPN kullanımını gerektiren HTTP/2 gibi protokolleri destekler, openSSL 1.1.1 veya openSSL 3.0.0 kullanarak TLS 1.3 kullanabilir... tüm bu özellikler standart Indy kütüphanesi tarafından desteklenmez, bu nedenle sgcWebSockets Enterprise edition, bu özellikleri destekleyen özel bir Indy kütüphanesi içerir. Standart Indy kütüphanesini IDE'den kaldırmaktan kaçınmak için, gerekli Indy dosyaları "sgc" ön eki eklenerek yeniden adlandırılır, böylece örneğin: "IdGlobal" birimi "sgcIdGlobal" olarak yeniden adlandırılır. Bu şekilde, her iki sürüm sorunsuz bir şekilde bir arada bulunabilir.

 

Her sgcWebSockets Sürümü tarafından hangi Indy sürümünün kullanıldığını aşağıda bulun:

 

sgcWebSockets Sürümü Indy Version
STANDARD Standard
PROFESSIONAL Standard
ENTERPRISE Özel

 

sgcWebSockets paketi bölünmeden önceki eski lisanslar olan "Registered" lisanslarına sahip müşteriler, aşağıdaki sgcWebSockets paket sürümlerini bulacaktır:

 

sgcWebSockets Sürümü Indy Version
sgcWebSockets Standard
sgcWebSockets min Standard
sgcWebSockets min Indy* Özel

 

*sgcWebSockets_min_indy, sgcWebSockets Enterprise sürümüyle aynıdır.

 

Özel Indy sürümünün kullanımı, kaynak klasöründe bulunan "sgcVer.inc" dosyasında tanımlanır. Bu indy sürümünün kullanımını etkinleştiren veya devre dışı bırakan "SGC_CUSTOM_INDY" adlı bir compiler define vardır. Bir Enterprise Edition'ınız varsa ve özel indy kullanımını devre dışı bırakmak istiyorsanız, yalnızca aşağıdaki compiler define'ı silin:

 

{$DEFINE SGC_CUSTOM_INDY}

 

Elbette, SGC_CUSTOM_INDY'yi etkinleştirirseniz ancak kaynak klasöründe gerekli özel indy sürümü birimleri yoksa, bu derleyici tanımı çalışmaz.

 

sgcIndy paketi

Özel Indy sürümünün kullanımı sgcWebSockets bileşenleriyle sınırlı değildir. Bazı müşteriler, bu özel Indy sürümünün yeni özelliklerini örneğin SMTP gibi standart Indy bileşenlerinde kullanmak ister, böylece e-posta gönderirken, FTP sunucuları kullanırken vb. TLS 1.3 kullanabilirler. eSeGeCe ALL-ACCESS sürümü, tüm bu özelliklere sahip ek bir tam Indy paketi sağlar. "sgcIndy package" olarak adlandırılan bu paket, openSSL 1.1.1 ve openSSL 3.0.0 desteğiyle tam Indy kütüphanesini içerir. Bu yüzden önce IDE'nizde yüklü mevcut Indy kütüphanenizi kaldırmalı ve ardından bu sürümü yüklemelisiniz; sgcIndy paketini yükleme süreci, herhangi bir Indy kütüphanesiyle tamamen aynıdır (burada birimler yeniden adlandırılmaz).

 

openSSL kütüphanelerini kullanmak istediğinizde, OpenSSL kütüphanelerini yüklemeden önce yalnızca OPENSSL_API_VERSION genel değişkenini istediğiniz OpenSSL API sürümüne ayarlayın. Bu genel değişken IdSSLOpenSSLHeaders ünitesindedir.

 

Örnek: openSSL 1.1.1 kütüphanelerini kullanmak için

 

OPENSSL_API_VERSION := opSSL_1_1;

 

 

Tek bir sgcIndy paketi nasıl kullanılır

eSeGeCe ALL-ACCESS ve sgcIndy paketini aynı uygulamada kullanırken, kaynaklar yinelenebilir çünkü sgcWebSockets Enterprise sürümü, Indy birimleri yeniden adlandırılmış özel bir Indy sürümü kullanır. Bu, örneğin sgcIdGlobal.pas ve IdGlobal.pas gibi birimlerin aynı uygulamada derleneceği anlamına gelir (birincisi sgcWebSockets Enterprise paketinin herhangi bir bileşeni kullanılırken, ikincisi ise ftp, smtp... gibi sgcIndy paketinin herhangi bir bileşeni kullanılırken kullanılır).

 

Bu davranışı önlemek için, sgcWebSockets paketi kurulu sgcIndy sürümünü kullanacak ve yine de tüm bileşenleri kullanacak şekilde yapılandırılabilir. Bunu yapmak için aşağıdaki talimatları izleyin:

 

1. sgcWebSockets paketinin Source klasöründe bulunan sgcVer.inc dosyasını açın.

2. SGC_CUSTOM_INDY derleyici yönergesini devre dışı bırakın. Bu seçenek, derleyiciye sgcId*.pas ile başlayan dosyaların var olduğunu ve sgcWebSockets Enterprise Paketi derlenirken kullanılması gerektiğini söyler.

3. Aşağıdaki derleyiciyi etkinleştirin: SGC_INDY_LIB. Bu seçenek, derleyiciye sgcIndy paketinin kurulu olduğunu ve paketi derlerken kullanılması gerektiğini söyler.

 

{$DEFINE SGC_INDY_LIB}

 

Önceki yapılandırmayı kullanarak, sgcWebSockets Enterprise paketi kurulu olan sgcIndy paketini kullanır ve bu paketi kullanan tüm özellikler (http/2, IOCP, OpenSSL 3.0... gibi) etkinleştirilir.