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.
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.
Client UDP a datagrammi ad alte prestazioni — la base sotto STUN, TURN, ICE, RTCPeerConnection e qualunque protocollo UDP personalizzato tu voglia scrivere.
TsgcUDPClient
Windows, macOS, Linux, iOS, Android
Core / Standard / Professional / Enterprise
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
}
Uno strato socket UDP sottile e prevedibile usato come trasporto per STUN / TURN / ICE / WebRTC e per qualunque protocollo a datagrammi personalizzato.
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.
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 instrada i datagrammi attraverso un UDP ASSOCIATE SOCKS5. Un proxy HTTP viene rifiutato con EsgcUDPProxyNotSupported, perché solo SOCKS5 definisce un percorso UDP.
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.
IPVersion viene passato direttamente al socket sottostante, quindi impostalo a Id_IPv6 quando ti serve il percorso IPv6.
Ogni componente P2P di livello superiore (TsgcSTUNClient, TsgcTURNClient, TsgcICEClient, TsgcRTCPeerConnection) usa questo client internamente come trasporto UDP.
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. | Apri | |
| 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. | Apri | |
| Documento tecnico (PDF) Funzionalità, guida rapida, esempi di codice per Delphi e C++ Builder e riferimenti alle fonti primarie — solo per questo componente. | Apri | |
| Manuale utente (PDF) Manuale completo che copre ogni componente della libreria. | Apri |