UDP-client voor Delphi
Verstuur en ontvang UDP-datagrammen vanuit Delphi/C++Builder. IPv4 en IPv6, een optionele DTLS-sessie en een SOCKS5-pad, en het transport waarop de hele STUN-, TURN-, ICE- en WebRTC-stack is gebouwd.
Verstuur en ontvang UDP-datagrammen vanuit Delphi/C++Builder. IPv4 en IPv6, een optionele DTLS-sessie en een SOCKS5-pad, en het transport waarop de hele STUN-, TURN-, ICE- en WebRTC-stack is gebouwd.
High-performance UDP-datagramclient — de basis onder STUN, TURN, ICE, RTCPeerConnection en elk custom UDP-protocol dat je schrijft.
TsgcUDPClient
Windows, macOS, Linux, iOS, Android
Core / Standard / Professional / Enterprise
Stel Host / Port in, Active := True en roep daarna WriteData aan met de tekst of de bytes die je wilt versturen. Inkomende datagrammen komen binnen via OnUDPRead.
uses
sgcP2P, sgcUDP_Classes, sgcSocket_Classes;
// TFormUDP bevat FClient: TsgcUDPClient en 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
// vuurt op de read thread, marshal voordat je een control aanraakt
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)
{
// vuurt op de read thread, marshal voordat je een control aanraakt
}
Een dunne, voorspelbare UDP-socketlaag, gebruikt als transport voor STUN / TURN / ICE / WebRTC en elk custom datagramprotocol.
WriteData(text) en WriteData(bytes) zetten een datagram naar Host / Port in de wachtrij, en de overloads die een adres meekrijgen versturen er een naar elke andere bestemming. OnUDPRead levert elk inkomend pakket samen met de socket waarop het binnenkwam.
Zet DTLS := True en vul DTLSOptions in om de datagrammen binnen een DTLS-sessie te transporteren. OnDTLSVerifyPeer geeft je het peer-certificaat door zodat jij beslist of je het accepteert.
Proxy stuurt de datagrammen door een SOCKS5 UDP ASSOCIATE. Een HTTP-proxy wordt geweigerd met EsgcUDPProxyNotSupported, omdat alleen SOCKS5 een UDP-pad definieert.
Elke OnUDPRead draagt een TsgcUDPSocket mee: IP en Port benoemen de afzender, LocalIP en LocalPort benoemen de lokale base die ICE later publiceert als host candidate.
IPVersion wordt rechtstreeks doorgegeven aan de onderliggende socket, dus zet hem op Id_IPv6 wanneer je het IPv6-pad nodig hebt.
Elk hoger P2P-component (TsgcSTUNClient, TsgcTURNClient, TsgcICEClient, TsgcRTCPeerConnection) gebruikt deze client intern als UDP-transport.
Direct linken naar de componentreferentie, het kant-en-klare demoproject pakken en de proefversie downloaden.
| Online help — TsgcUDPClient Volledige referentie van eigenschappen, methoden en gebeurtenissen voor dit component. | Openen | |
| Demoproject — Demos\35.P2P\01.UDP_Server_Client Kant-en-klaar voorbeeldproject. Zit in het sgcWebSockets-pakket — download hieronder de proefversie. | Openen | |
| Technisch document (PDF) Functies, snelstart, codevoorbeelden voor Delphi & C++ Builder en primaire bronverwijzingen — alleen dit component. | Openen | |
| Gebruikershandleiding (PDF) Uitgebreide handleiding voor elk component in de bibliotheek. | Openen |