Client UDP per Delphi

Invia e ricevi datagrammi UDP da Delphi/C++Builder. IPv4 e IPv6, una sessione DTLS opzionale e un percorso SOCKS5, oltre al trasporto su cui è costruito tutto lo stack STUN, TURN, ICE e WebRTC.

TsgcUDPClient

Client UDP a datagrammi ad alte prestazioni — la base sotto STUN, TURN, ICE, RTCPeerConnection e qualunque protocollo UDP personalizzato tu voglia scrivere.

Classe componente

TsgcUDPClient

Protocollo

UDP (RFC 768)

Piattaforme

Windows, macOS, Linux, iOS, Android

Edizione

Core / Standard / Professional / Enterprise

Trascina il componente, invia pacchetti

Imposta Host / Port, Active := True, poi chiama WriteData con il testo o i byte che vuoi inviare. I datagrammi in arrivo si presentano su OnUDPRead.

uses
  sgcP2P, sgcUDP_Classes, sgcSocket_Classes;

// TFormUDP contiene FClient: TsgcUDPClient e 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
  // si attiva sul thread di lettura, fai il marshal prima di toccare un controllo
  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)
{
  // si attiva sul thread di lettura, fai il marshal prima di toccare un controllo
}

Cosa c'è all'interno

Uno strato socket UDP sottile e prevedibile usato come trasporto per STUN / TURN / ICE / WebRTC e per qualunque protocollo a datagrammi personalizzato.

Invio/ricezione unicast

WriteData(text) e WriteData(bytes) accodano un datagramma verso Host / Port, mentre gli overload che accettano un indirizzo lo inviano a qualunque altro endpoint. OnUDPRead consegna ogni pacchetto in ingresso insieme al socket su cui è arrivato.

DTLS

Imposta DTLS := True e compila DTLSOptions per trasportare i datagrammi dentro una sessione DTLS. OnDTLSVerifyPeer ti consegna il certificato del peer, così decidi tu se accettarlo.

Proxy SOCKS5

Proxy instrada i datagrammi attraverso un UDP ASSOCIATE SOCKS5. Un proxy HTTP viene rifiutato con EsgcUDPProxyNotSupported, perché solo SOCKS5 definisce un percorso UDP.

Il socket da cui leggi

Ogni OnUDPRead porta con sé una TsgcUDPSocket: IP e Port identificano il mittente, LocalIP e LocalPort identificano la base locale che ICE pubblica poi come candidato host.

IPv4 / IPv6

IPVersion viene passato direttamente al socket sottostante, quindi impostalo a Id_IPv6 quando ti serve il percorso IPv6.

Usato sotto lo stack P2P

Ogni componente P2P di livello superiore (TsgcSTUNClient, TsgcTURNClient, TsgcICEClient, TsgcRTCPeerConnection) usa questo client internamente come trasporto UDP.

Specifiche e riferimenti

Fonti autorevoli per il protocollo implementato da questo componente.

Documentazione e demo

Collegamenti diretti al riferimento del componente, al progetto demo pronto all'uso e al download della versione di prova.

Guida online — TsgcUDPClient Riferimento completo di proprietà, metodi ed eventi di questo componente.
Progetto demo — Demos\35.P2P\01.UDP_Server_Client Progetto di esempio pronto all'uso. Incluso nel pacchetto sgcWebSockets — scarica la versione di prova qui sotto.
Documento tecnico (PDF) Funzionalità, guida rapida, esempi di codice per Delphi e C++ Builder e riferimenti alle fonti primarie — solo per questo componente.
Manuale utente (PDF) Manuale completo che copre ogni componente della libreria.
La scelta più conveniente: All-AccessTutti i prodotti eSeGeCe, con Supporto Premium incluso, a partire da €1,059/anno.
Vedi i prezzi All-Access

Pronto a inviare UDP da Delphi?

Scarica la versione di prova gratuita e aggiungi il supporto per datagrammi UDP alle tue applicazioni Delphi.