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.
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.
Hochperformanter UDP-Datagramm-Client — die Basis unter STUN, TURN, ICE, RTCPeerConnection und jedem eigenen UDP-Protokoll, das du schreibst.
TsgcUDPClient
Windows, macOS, Linux, iOS, Android
Core / Standard / Professional / Enterprise
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
}
Eine schlanke, berechenbare UDP-Socket-Schicht, die als Transport für STUN / TURN / ICE / WebRTC und jedes beliebige Datagramm-Protokoll dient.
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.
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.
Proxy leitet die Datagramme über ein SOCKS5 UDP ASSOCIATE. Ein HTTP-Proxy wird mit EsgcUDPProxyNotSupported abgelehnt, weil nur SOCKS5 einen UDP-Pfad definiert.
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.
IPVersion wird direkt an den zugrundeliegenden Socket weitergereicht, setze es also auf Id_IPv6, wenn du den IPv6-Pfad brauchst.
Jede höhere P2P-Komponente (TsgcSTUNClient, TsgcTURNClient, TsgcICEClient, TsgcRTCPeerConnection) nutzt diesen Client intern als ihren UDP-Transport.
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. | Öffnen | |
| Demo-Projekt — Demos\35.P2P\01.UDP_Server_Client Sofort lauffähiges Beispielprojekt. Wird im sgcWebSockets-Paket mitgeliefert — lade unten die Testversion herunter. | Öffnen | |
| Technisches Dokument (PDF) Funktionen, Schnellstart, Code-Beispiele für Delphi & C++ Builder und Primärquellen-Referenzen — nur diese Komponente. | Öffnen | |
| Benutzerhandbuch (PDF) Umfassendes Handbuch, das jede Komponente der Bibliothek abdeckt. | Öffnen |