Serwer UDP dla Delphi

Nasłuchuj datagramów UDP na porcie i przekazuj każdy z nich do swojej aplikacji. Ten sam silnik, który zasila TsgcSTUNServer i TsgcTURNServer.

TsgcUDPServer

Wysokowydajny nasłuchujący UDP — powiąż z portem, odbieraj datagramy od dowolnego peera, odpowiadaj wskazanym punktom końcowym, wszystko przez jedno powiązane gniazdo.

Klasa komponentu

TsgcUDPServer

Protokół

UDP (RFC 768)

Platformy

Windows, macOS, Linux, iOS, Android

Edycja

Professional / Enterprise

Upuść, nasłuchuj, odpowiedz

Ustaw Port, Active := True, następnie obsługuj przychodzące datagramy w OnUDPRead i odpowiadaj przez Socket.WriteData — jedno gniazdo, dowolna liczba zdalnych peerów.

uses
  sgcP2P, sgcUDP_Classes, sgcSocket_Classes;

// TFormUDPServer zawiera FServer: TsgcUDPServer oraz 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
  // odeślij echo do peera, od którego przyszedł datagram
  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)
{
  // odeślij echo do peera, od którego przyszedł datagram
  Socket->WriteData(TBytes(Bytes));
}

Co jest w środku

Nasłuchujący UDP, który przekazuje każdy datagram do Twojego handlera wraz z TsgcUDPSocket, na który dotarł i który jest zarazem ścieżką odpowiedzi.

Jeden port, wielu peerów

Jedno powiązane gniazdo obsługuje datagramy z dowolnej liczby zdalnych punktów końcowych. Każde OnUDPRead jest wywoływane z TsgcUDPSocket, którego IP i Port identyfikują nadawcę.

Ścieżka odpowiedzi

Socket.WriteData odsyła datagram do źródłowego peera tym samym gniazdem, a serwer udostępnia także WriteData(ip, port, ...) dla dowolnego innego punktu końcowego.

WatchDog

WatchDog restartuje nasłuchującego, gdy ten przestaje odpowiadać, a OnBeforeWatchDog daje Ci możliwość zawetowania restartu. OnStartup i OnShutdown otaczają każde powiązanie.

IPv4 / IPv6 i wiele powiązań

Ustaw IPVersion, aby wybrać rodzinę adresów, albo dodaj po jednym wpisie na adres do Bindings za pomocą AddBinding, RemoveBinding i GetBinding, gdy serwer musi nasłuchiwać na kilku.

Używany przez TsgcSTUNServer / TsgcTURNServer

Serwery STUN i TURN (pełne implementacje RFC 8489 / 8656) są zbudowane na tym komponencie — możesz zrobić to samo dla dowolnego niestandardowego protokołu UDP.

DTLS

Ustaw DTLS := True i wypełnij DTLSOptions, aby prowadzić datagramy wewnątrz sesji DTLS, a OnDTLSVerifyPeer decyduje, które certyfikaty peerów akceptujesz.

Specyfikacje i odniesienia

Wiarygodne źródła protokołu, który implementuje ten komponent.

Dokumentacja i dema

Przejdź bezpośrednio do dokumentacji komponentu, pobierz gotowy do uruchomienia projekt demonstracyjny i pobierz wersję próbną.

Pomoc online — TsgcUDPServer Pełna dokumentacja właściwości, metod i zdarzeń tego komponentu.
Projekt demonstracyjny — Demos\35.P2P\01.UDP_Server_Client Gotowy do uruchomienia projekt przykładowy. Dostarczany w pakiecie sgcWebSockets — pobierz wersję próbną poniżej.
Dokument techniczny (PDF) Funkcje, szybki start, przykłady kodu dla Delphi i C++ Builder oraz odniesienia do źródeł — tylko ten komponent.
Podręcznik użytkownika (PDF) Kompleksowy podręcznik obejmujący każdy komponent biblioteki.
Najkorzystniejsza oferta: All-AccessWszystkie produkty eSeGeCe, ze wsparciem Premium w cenie, już od €1,059 rocznie.
Zobacz cennik All-Access

Gotowy do uruchomienia serwera UDP?

Pobierz bezpłatną wersję próbną i nasłuchuj datagramów UDP z Delphi.