Serwer UDP

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, skaluj się na rdzenie poprzez wątki robocze.

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 OnMessage i odpowiadaj przez Connection.WriteData — jedno gniazdo, dowolna liczba zdalnych peerów.

uses
  sgcP2P;

var
  Server: TsgcUDPServer;
begin
  Server := TsgcUDPServer.Create(nil);
  Server.Port := 4000;

  Server.OnMessage := procedure(Connection: TsgcUDPConnection;
    const aText: string)
  begin
    // echo back to the originating peer
    Connection.WriteData('echo: ' + aText);
  end;

  Server.Active := True;
end;
// uses: sgcP2P
TsgcUDPServer *Server = new TsgcUDPServer(this);
Server->Port = 4000;
Server->Active = true;

Co jest w środku

Wielowątkowy nasłuchujący UDP, który kieruje każdy datagram do puli roboczej i udostępnia TsgcUDPConnection dla ścieżki odpowiedzi.

Jeden port, wielu peerów

Jedno powiązane gniazdo obsługuje datagramy z dowolnej liczby zdalnych punktów końcowych. Każde OnMessage jest wywoływane z TsgcUDPConnection identyfikującym źródłowe PeerIP / PeerPort.

Ścieżka odpowiedzi

Connection.WriteData wysyła datagram z powrotem do źródłowego peera za pomocą tego samego gniazda — nie jest potrzebne dodatkowe powiązanie wychodzące.

Wątkowe przetwarzanie

Pula robocza przetwarza pakiety przychodzące — konfiguruj przez WorkerCount jeśli handler wykonuje dużo pracy. Wątek odbioru nigdy nie jest blokowany.

IPv4 / IPv6 / dual-stack

Obsługuje powiązanie tylko IPv4, tylko IPv6 lub dual-stack przez IPVersion. Dołączanie do grup multicast jest dostępne przez JoinMulticastGroup.

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.

Wskazówka bez fragmentacji

Ustaw DontFragment := True na zapisach wychodzących — przydatne do sondowania path-MTU w niestandardowych protokołach.

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.

Gotowy do uruchomienia serwera UDP?

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