Client UDP pour Delphi

Envoie et reçois des datagrammes UDP depuis Delphi/C++Builder. IPv4 et IPv6, une session DTLS optionnelle et un chemin SOCKS5, et le transport sur lequel repose toute la pile STUN, TURN, ICE et WebRTC.

TsgcUDPClient

Client UDP haute performance — la fondation sous STUN, TURN, ICE, RTCPeerConnection et tout protocole UDP personnalisé que tu écris.

Classe du composant

TsgcUDPClient

Protocole

UDP (RFC 768)

Plateformes

Windows, macOS, Linux, iOS, Android

Édition

Core / Standard / Professional / Enterprise

Pose le composant, envoie des paquets

Configure Host / Port, Active := True, puis appelle WriteData avec le texte ou les octets à envoyer. Les datagrammes entrants arrivent sur OnUDPRead.

uses
  sgcP2P, sgcUDP_Classes, sgcSocket_Classes;

// TFormUDP contient FClient: TsgcUDPClient et 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
  // se déclenche sur le thread de lecture, synchronise avant de toucher un contrôle
  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)
{
  // se déclenche sur le thread de lecture, synchronise avant de toucher un contrôle
}

Sous le capot

Une couche socket UDP fine et prévisible utilisée comme transport pour STUN / TURN / ICE / WebRTC et tout protocole datagramme personnalisé.

Envoi/réception unicast

WriteData(text) et WriteData(bytes) mettent en file un datagramme vers Host / Port, et les surcharges qui prennent une adresse en envoient un vers n'importe quelle autre destination. OnUDPRead livre chaque paquet entrant avec le socket sur lequel il est arrivé.

DTLS

Configure DTLS := True et renseigne DTLSOptions pour transporter les datagrammes dans une session DTLS. OnDTLSVerifyPeer te remet le certificat du pair pour que tu décides de l'accepter ou non.

Proxy SOCKS5

Proxy fait passer les datagrammes par un UDP ASSOCIATE SOCKS5. Un proxy HTTP est refusé avec EsgcUDPProxyNotSupported, car seul SOCKS5 définit un chemin UDP.

Le socket dont tu lis les données

Chaque OnUDPRead porte un TsgcUDPSocket : IP et Port nomment l'expéditeur, LocalIP et LocalPort nomment la base locale qu'ICE publiera ensuite comme candidat host.

IPv4 / IPv6

IPVersion est transmis directement au socket sous-jacent, configure-le donc sur Id_IPv6 quand tu as besoin du chemin IPv6.

Utilisé sous la pile P2P

Chaque composant P2P de plus haut niveau (TsgcSTUNClient, TsgcTURNClient, TsgcICEClient, TsgcRTCPeerConnection) utilise ce client en interne comme transport UDP.

Spécifications et références

Sources de référence pour le protocole implémenté par ce composant.

Documentation et démos

Lien direct vers la référence du composant, projet de démo prêt à l'emploi et téléchargement de l'essai.

Aide en ligne — TsgcUDPClient Référence complète des propriétés, méthodes et événements de ce composant.
Projet de démo — Demos\35.P2P\01.UDP_Server_Client Projet d'exemple prêt à l'emploi. Livré dans le package sgcWebSockets — télécharge l'essai ci-dessous.
Document technique (PDF) Fonctionnalités, démarrage rapide, exemples de code Delphi et C++ Builder et références primaires — ce composant uniquement.
Manuel utilisateur (PDF) Manuel complet couvrant tous les composants de la bibliothèque.
Meilleur rapport qualité-prix : All-AccessTous les produits eSeGeCe, Support Premium inclus, à partir de €1,059/an.
Voir les tarifs All-Access

Prêt à envoyer de l'UDP depuis Delphi ?

Télécharge l'essai gratuit et ajoute la prise en charge des datagrammes UDP à tes applications Delphi.