Klient UDP dla Delphi

Wysyłaj i odbieraj datagramy UDP z Delphi/C++Builder. IPv4 i IPv6, opcjonalna sesja DTLS oraz ścieżka SOCKS5, a także transport, na którym zbudowany jest cały stos STUN, TURN, ICE i WebRTC.

TsgcUDPClient

Wysokowydajny klient datagramów UDP — fundament pod STUN, TURN, ICE, RTCPeerConnection i każdym własnym protokołem UDP, który napiszesz.

Klasa komponentu

TsgcUDPClient

Protokół

UDP (RFC 768)

Platformy

Windows, macOS, Linux, iOS, Android

Edycja

Core / Standard / Professional / Enterprise

Upuść komponent, wysyłaj pakiety

Ustaw Host / Port, Active := True, a następnie wywołaj WriteData z tekstem lub bajtami, które chcesz wysłać. Przychodzące datagramy docierają w OnUDPRead.

uses
  sgcP2P, sgcUDP_Classes, sgcSocket_Classes;

// TFormUDP zawiera FClient: TsgcUDPClient oraz FIncoming: TStringList

procedure TFormUDP.CreateClient;
begin
  FClient := TsgcUDPClient.Create(nil);
  FClient.Host := '127.0.0.1';
  FClient.Port := 4000;

  FClient.OnUDPRead := OnUDPRead;

  FClient.Active := True;
  FClient.WriteData('hello over UDP');
end;

procedure TFormUDP.OnUDPRead(Sender: TObject; Socket: TsgcUDPSocket;
  Bytes: TsgcBytes);
var
  oStream: TStringStream;
begin
  // wywoływane w wątku odczytu, wykonaj marshaling zanim dotkniesz kontrolki
  oStream := TStringStream.Create('');
  try
    oStream.Write(Bytes[0], Length(Bytes));
    FIncoming.Add(oStream.DataString);
  finally
    oStream.Free;
  end;
end;
// includes: sgcP2P.hpp, sgcUDP_Classes.hpp, sgcSocket_Classes.hpp
TsgcUDPClient *Client = new TsgcUDPClient(this);
Client->Host = "127.0.0.1";
Client->Port = 4000;
Client->OnUDPRead = OnUDPRead;

Client->Active = true;
Client->WriteData("hello over UDP");

void __fastcall TFormUDP::OnUDPRead(TObject *Sender,
  TsgcUDPSocket *Socket, TsgcBytes Bytes)
{
  // wywoływane w wątku odczytu, wykonaj marshaling zanim dotkniesz kontrolki
}

Co jest w środku

Cienka, przewidywalna warstwa gniazd UDP używana jako transport dla STUN / TURN / ICE / WebRTC i każdego własnego protokołu datagramów.

Wysyłanie/odbiór unicast

WriteData(text) i WriteData(bytes) kolejkują datagram do Host / Port, a przeciążenia przyjmujące adres wysyłają go w dowolne inne miejsce. OnUDPRead dostarcza każdy przychodzący pakiet wraz z gniazdem, na które dotarł.

DTLS

Ustaw DTLS := True i wypełnij DTLSOptions, aby przenosić datagramy wewnątrz sesji DTLS. OnDTLSVerifyPeer przekazuje Ci certyfikat peera, więc to Ty decydujesz, czy go zaakceptować.

Proxy SOCKS5

Proxy przenosi datagramy przez SOCKS5 UDP ASSOCIATE. Proxy HTTP jest odrzucane z EsgcUDPProxyNotSupported, ponieważ tylko SOCKS5 definiuje ścieżkę UDP.

Gniazdo, z którego odczytujesz

Każde OnUDPRead niesie TsgcUDPSocket: IP i Port wskazują nadawcę, a LocalIP i LocalPort wskazują lokalną bazę, którą ICE publikuje później jako kandydata host.

IPv4 / IPv6

IPVersion jest przekazywane wprost do gniazda bazowego, więc ustaw je na Id_IPv6, gdy potrzebujesz ścieżki IPv6.

Używany pod stosem P2P

Każdy wyższy komponent P2P (TsgcSTUNClient, TsgcTURNClient, TsgcICEClient, TsgcRTCPeerConnection) używa wewnętrznie tego klienta jako swojego transportu UDP.

Specyfikacje i odniesienia

Wiarygodne źródła protokołu, który implementuje ten komponent.

Dokumentacja i dema

Przejdź bezpośrednio do dokumentacji komponentu, pobierz gotowy do uruchomienia projekt demonstracyjny i pobierz wersję próbną.

Pomoc online — TsgcUDPClient Pełna dokumentacja właściwości, metod i zdarzeń tego komponentu.
Projekt demonstracyjny — Demos\35.P2P\01.UDP_Server_Client Gotowy do uruchomienia projekt przykładowy. Dostarczany w pakiecie sgcWebSockets — pobierz wersję próbną poniżej.
Dokument techniczny (PDF) Funkcje, szybki start, przykłady kodu dla Delphi i C++ Builder oraz odniesienia do źródeł — tylko ten komponent.
Podręcznik użytkownika (PDF) Kompleksowy podręcznik obejmujący każdy komponent biblioteki.
Najkorzystniejsza oferta: All-AccessWszystkie produkty eSeGeCe, ze wsparciem Premium w cenie, już od €1,059 rocznie.
Zobacz cennik All-Access

Gotowy, by wysyłać UDP w Delphi?

Pobierz bezpłatną wersję próbną i dodaj obsługę datagramów UDP do swoich aplikacji Delphi.