UDP-server voor Delphi
Luister naar UDP-datagrammen op een poort en stuur elk datagram door naar je toepassing. Dezelfde engine die TsgcSTUNServer en TsgcTURNServer aandrijft.
Luister naar UDP-datagrammen op een poort en stuur elk datagram door naar je toepassing. Dezelfde engine die TsgcSTUNServer en TsgcTURNServer aandrijft.
High-performance UDP-listener — bind aan een poort, ontvang datagrammen van elke peer en beantwoord specifieke endpoints, allemaal via één gebonden socket.
TsgcUDPServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Stel Port in, Active := True en handel inkomende datagrammen af in OnUDPRead. Antwoord via Socket.WriteData — één socket, willekeurig veel remote peers.
uses
sgcP2P, sgcUDP_Classes, sgcSocket_Classes;
// TFormUDPServer bevat FServer: TsgcUDPServer en de handler
procedure TFormUDPServer.StartServer;
begin
FServer := TsgcUDPServer.Create(nil);
FServer.Port := 4000;
FServer.OnUDPRead := OnUDPRead;
FServer.Active := True;
end;
procedure TFormUDPServer.OnUDPRead(Sender: TObject;
Socket: TsgcUDPSocket; Bytes: TsgcBytes);
begin
// stuur terug naar de peer waar het datagram vandaan kwam
Socket.WriteData(TBytes(Bytes));
end;
// includes: sgcP2P.hpp, sgcUDP_Classes.hpp, sgcSocket_Classes.hpp
TsgcUDPServer *Server = new TsgcUDPServer(this);
Server->Port = 4000;
Server->OnUDPRead = OnUDPRead;
Server->Active = true;
void __fastcall TFormUDPServer::OnUDPRead(TObject *Sender,
TsgcUDPSocket *Socket, TsgcBytes Bytes)
{
// stuur terug naar de peer waar het datagram vandaan kwam
Socket->WriteData(TBytes(Bytes));
}
Een UDP-listener die elk datagram aan je handler doorgeeft samen met de TsgcUDPSocket waarop het binnenkwam, en dat is meteen het antwoordpad.
Één gebonden socket handelt datagrammen af van willekeurig veel remote endpoints. Elke OnUDPRead vuurt met een TsgcUDPSocket waarvan IP en Port de afzender identificeren.
Socket.WriteData stuurt een datagram terug naar de oorspronkelijke peer via dezelfde socket, en de server biedt daarnaast WriteData(ip, port, ...) voor elk ander endpoint.
WatchDog herstart de listener wanneer die niet meer antwoordt, en OnBeforeWatchDog geeft je de kans om die herstart tegen te houden. OnStartup en OnShutdown omsluiten elke bind.
Stel IPVersion in voor de familie, of voeg per adres een item toe aan Bindings met AddBinding, RemoveBinding en GetBinding wanneer de server op meerdere adressen moet luisteren.
De STUN- en TURN-servers (volledige RFC 8489 / 8656-implementaties) bouwen op dit component — jij kunt hetzelfde doen voor elk custom UDP-protocol.
Zet DTLS := True en vul DTLSOptions in om de datagrammen binnen een DTLS-sessie te laten lopen, waarbij OnDTLSVerifyPeer bepaalt welke peer-certificaten je accepteert.
Direct linken naar de componentreferentie, het kant-en-klare demoproject pakken en de proefversie downloaden.
| Online help — TsgcUDPServer 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 |