Gniazda (socket)

Poniższe przykłady pokazują niskopoziomowe operacje na gniazdach, czyli zapis i odczyt tablicy bajtów.

Przez adres i port hosta

Te metody za każdym wywołaniem tworzą nowe połączenie TCP. Są zalecane do pojedynczych operacji odczytu/zapisu z/do gniazda. Przy większych ilościach danych zalecane jest korzystanie z metod z paragrafu o predefiniowanych konektorach.

$// Wysłanie żądania HTTP GET do przykładowego hosta
$=(@data, "GET kernel.org")
$net.write("kernel.org", 80, $@data.getBytes())
$// Wysyłąnie i odbieranie żądania HTTP GET do przykładowego hosta
$=(@data, "GET kernel.org")
$toString($net.read("kernel.org", 80, $@data.getBytes()))

Powyższy przykład przed odebraniem danych wysyła żądanie do hosta, ale nie jest to obowiązkowe i żądanie może być null.

Przez predefiniowany konektor

W konfiguracji instancji możliwe jest zdefiniowanie konektora TCP, który następnie można wykorzystać do operacji na gniazdach. Definiowanie konektorów jest opisane w artykule: Dokumentacja > Konektory > TCP. Ma to taką przewagę nad połączeniami przez host i port że zdefiniowany konektor jest używany przez pulę połączeń.

$// Wysłanie żądania HTTP GET do przykładowego konektora
$=(@data, "GET kernel.org")
$net.write("kernel_org_konkektor", $@data.getBytes())
$// Jak wyżej tylko wysyłane dane są w postaci Stringa. Kodowanie jest
$// ustalane na podstawie parametru 'charset' z konfiguracji konektora.
$net.write("kernel_org_konkektor", $@data)

$// Wysłanie i odczyt żądania HTTP GET do przykładowego konektora
$=(@data, "GET kernel.org")
$toString($net.read("kernel_org_konkektor", $@data.getBytes()))
$// Jak wyżej tylko wysyłane dane są w postaci Stringa. Kodowanie jest
$// ustalane na podstawie parametru 'charset' z konfiguracji konektora.
$toString($net.read("kernel_org_konkektor", $@data))