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.
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.
Client UDP haute performance — la fondation sous STUN, TURN, ICE, RTCPeerConnection et tout protocole UDP personnalisé que tu écris.
TsgcUDPClient
Windows, macOS, Linux, iOS, Android
Core / Standard / Professional / Enterprise
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
}
Une couche socket UDP fine et prévisible utilisée comme transport pour STUN / TURN / ICE / WebRTC et tout protocole datagramme personnalisé.
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é.
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 fait passer les datagrammes par un UDP ASSOCIATE SOCKS5. Un proxy HTTP est refusé avec EsgcUDPProxyNotSupported, car seul SOCKS5 définit un chemin UDP.
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.
IPVersion est transmis directement au socket sous-jacent, configure-le donc sur Id_IPv6 quand tu as besoin du chemin IPv6.
Chaque composant P2P de plus haut niveau (TsgcSTUNClient, TsgcTURNClient, TsgcICEClient, TsgcRTCPeerConnection) utilise ce client en interne comme transport UDP.
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. | Ouvrir | |
| 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. | Ouvrir | |
| Document technique (PDF) Fonctionnalités, démarrage rapide, exemples de code Delphi et C++ Builder et références primaires — ce composant uniquement. | Ouvrir | |
| Manuel utilisateur (PDF) Manuel complet couvrant tous les composants de la bibliothèque. | Ouvrir |