Klient UDP dla Delphi
Wysyłaj i odbieraj datagramy UDP z Delphi/C++Builder. IPv4 i IPv6, opcjonalna sesja DTLS oraz ścieżka SOCKS5, a także transport, na którym zbudowany jest cały stos STUN, TURN, ICE i WebRTC.
Wysyłaj i odbieraj datagramy UDP z Delphi/C++Builder. IPv4 i IPv6, opcjonalna sesja DTLS oraz ścieżka SOCKS5, a także transport, na którym zbudowany jest cały stos STUN, TURN, ICE i WebRTC.
Wysokowydajny klient datagramów UDP — fundament pod STUN, TURN, ICE, RTCPeerConnection i każdym własnym protokołem UDP, który napiszesz.
TsgcUDPClient
Windows, macOS, Linux, iOS, Android
Core / Standard / Professional / Enterprise
Ustaw Host / Port, Active := True, a następnie wywołaj WriteData z tekstem lub bajtami, które chcesz wysłać. Przychodzące datagramy docierają w OnUDPRead.
uses
sgcP2P, sgcUDP_Classes, sgcSocket_Classes;
// TFormUDP zawiera FClient: TsgcUDPClient oraz 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
// wywoływane w wątku odczytu, wykonaj marshaling zanim dotkniesz kontrolki
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)
{
// wywoływane w wątku odczytu, wykonaj marshaling zanim dotkniesz kontrolki
}
Cienka, przewidywalna warstwa gniazd UDP używana jako transport dla STUN / TURN / ICE / WebRTC i każdego własnego protokołu datagramów.
WriteData(text) i WriteData(bytes) kolejkują datagram do Host / Port, a przeciążenia przyjmujące adres wysyłają go w dowolne inne miejsce. OnUDPRead dostarcza każdy przychodzący pakiet wraz z gniazdem, na które dotarł.
Ustaw DTLS := True i wypełnij DTLSOptions, aby przenosić datagramy wewnątrz sesji DTLS. OnDTLSVerifyPeer przekazuje Ci certyfikat peera, więc to Ty decydujesz, czy go zaakceptować.
Proxy przenosi datagramy przez SOCKS5 UDP ASSOCIATE. Proxy HTTP jest odrzucane z EsgcUDPProxyNotSupported, ponieważ tylko SOCKS5 definiuje ścieżkę UDP.
Każde OnUDPRead niesie TsgcUDPSocket: IP i Port wskazują nadawcę, a LocalIP i LocalPort wskazują lokalną bazę, którą ICE publikuje później jako kandydata host.
IPVersion jest przekazywane wprost do gniazda bazowego, więc ustaw je na Id_IPv6, gdy potrzebujesz ścieżki IPv6.
Każdy wyższy komponent P2P (TsgcSTUNClient, TsgcTURNClient, TsgcICEClient, TsgcRTCPeerConnection) używa wewnętrznie tego klienta jako swojego transportu UDP.
Przejdź bezpośrednio do dokumentacji komponentu, pobierz gotowy do uruchomienia projekt demonstracyjny i pobierz wersję próbną.
| Pomoc online — TsgcUDPClient Pełna dokumentacja właściwości, metod i zdarzeń tego komponentu. | Otwórz | |
| 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. | Otwórz | |
| Dokument techniczny (PDF) Funkcje, szybki start, przykłady kodu dla Delphi i C++ Builder oraz odniesienia do źródeł — tylko ten komponent. | Otwórz | |
| Podręcznik użytkownika (PDF) Kompleksowy podręcznik obejmujący każdy komponent biblioteki. | Otwórz |