Delphi UDP Client

Sende und empfange UDP-Datagramme aus Delphi/C++Builder. IPv4 und IPv6, eine optionale DTLS-Sitzung und ein SOCKS5-Pfad, und der Transport, auf dem der gesamte STUN-, TURN-, ICE- und WebRTC-Stack aufbaut.

TsgcUDPClient

Hochperformanter UDP-Datagramm-Client — die Basis unter STUN, TURN, ICE, RTCPeerConnection und jedem eigenen UDP-Protokoll, das du schreibst.

Komponentenklasse

TsgcUDPClient

Protokoll

UDP (RFC 768)

Plattformen

Windows, macOS, Linux, iOS, Android

Edition

Core / Standard / Professional / Enterprise

Komponente platzieren, Pakete senden

Setze Host / Port, Active := True und rufe dann WriteData mit dem Text oder den Bytes auf, die du senden willst. Eingehende Datagramme treffen bei OnUDPRead ein.

uses
  sgcP2P, sgcUDP_Classes, sgcSocket_Classes;

// TFormUDP enthält FClient: TsgcUDPClient und 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
  // wird im Read-Thread ausgelöst, vor dem Zugriff auf ein Control synchronisieren
  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)
{
  // wird im Read-Thread ausgelöst, vor dem Zugriff auf ein Control synchronisieren
}

Was steckt drin

Eine schlanke, berechenbare UDP-Socket-Schicht, die als Transport für STUN / TURN / ICE / WebRTC und jedes beliebige Datagramm-Protokoll dient.

Unicast senden/empfangen

WriteData(text) und WriteData(bytes) stellen ein Datagramm an Host / Port in die Warteschlange, und die Overloads mit Adressangabe senden eines an jeden beliebigen anderen Endpunkt. OnUDPRead liefert jedes eingehende Paket zusammen mit dem Socket, auf dem es eingetroffen ist.

DTLS

Setze DTLS := True und fülle DTLSOptions, um die Datagramme innerhalb einer DTLS-Sitzung zu übertragen. OnDTLSVerifyPeer übergibt dir das Peer-Zertifikat, sodass du entscheidest, ob du es akzeptierst.

SOCKS5-Proxy

Proxy leitet die Datagramme über ein SOCKS5 UDP ASSOCIATE. Ein HTTP-Proxy wird mit EsgcUDPProxyNotSupported abgelehnt, weil nur SOCKS5 einen UDP-Pfad definiert.

Der Socket, von dem du liest

Jedes OnUDPRead liefert einen TsgcUDPSocket: IP und Port benennen den Absender, LocalIP und LocalPort benennen die lokale Basis, die ICE später als Host-Candidate veröffentlicht.

IPv4 / IPv6

IPVersion wird direkt an den zugrundeliegenden Socket weitergereicht, setze es also auf Id_IPv6, wenn du den IPv6-Pfad brauchst.

Basis des P2P-Stacks

Jede höhere P2P-Komponente (TsgcSTUNClient, TsgcTURNClient, TsgcICEClient, TsgcRTCPeerConnection) nutzt diesen Client intern als ihren UDP-Transport.

Spezifikationen & Referenzen

Maßgebliche Quellen für das Protokoll, das diese Komponente implementiert.

Dokumentation & Demos

Springe direkt zur Komponentenreferenz, hole dir das sofort lauffähige Demo-Projekt und lade die Testversion herunter.

Online-Hilfe — TsgcUDPClient Vollständige Referenz zu Eigenschaften, Methoden und Ereignissen dieser Komponente.
Demo-Projekt — Demos\35.P2P\01.UDP_Server_Client Sofort lauffähiges Beispielprojekt. Wird im sgcWebSockets-Paket mitgeliefert — lade unten die Testversion herunter.
Technisches Dokument (PDF) Funktionen, Schnellstart, Code-Beispiele für Delphi & C++ Builder und Primärquellen-Referenzen — nur diese Komponente.
Benutzerhandbuch (PDF) Umfassendes Handbuch, das jede Komponente der Bibliothek abdeckt.
Bestes Preis-Leistungs-Verhältnis: All-AccessAlle eSeGeCe-Produkte, inklusive Premium-Support, ab €1,059 pro Jahr.
All-Access-Preise ansehen

Bereit, UDP aus Delphi zu senden?

Lade die kostenlose Testversion herunter und ergänze deine Delphi-Anwendungen um UDP-Datagramm-Unterstützung.