Cliente UDP para Delphi
Envie e receba datagramas UDP a partir do Delphi/C++Builder. IPv4 e IPv6, uma sessão DTLS opcional e um caminho SOCKS5, e o transporte sobre o qual toda a pilha STUN, TURN, ICE e WebRTC é construída.
Envie e receba datagramas UDP a partir do Delphi/C++Builder. IPv4 e IPv6, uma sessão DTLS opcional e um caminho SOCKS5, e o transporte sobre o qual toda a pilha STUN, TURN, ICE e WebRTC é construída.
Cliente UDP de alto desempenho — a base sob STUN, TURN, ICE, RTCPeerConnection e qualquer protocolo UDP personalizado que você escrever.
TsgcUDPClient
Windows, macOS, Linux, iOS, Android
Core / Standard / Professional / Enterprise
Defina Host / Port, Active := True, depois chame WriteData com o texto ou os bytes que deseja enviar. Os datagramas recebidos chegam em OnUDPRead.
uses
sgcP2P, sgcUDP_Classes, sgcSocket_Classes;
// TFormUDP mantém FClient: TsgcUDPClient e 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
// disparado na thread de leitura, faça o marshal antes de tocar em um controle
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)
{
// disparado na thread de leitura, faça o marshal antes de tocar em um controle
}
Uma camada de socket UDP simples e previsível usada como transporte para STUN / TURN / ICE / WebRTC e qualquer protocolo de datagrama personalizado.
WriteData(text) e WriteData(bytes) enfileiram um datagrama para Host / Port, e as sobrecargas que recebem um endereço enviam para qualquer outro destino. OnUDPRead entrega cada pacote de entrada junto com o socket em que ele chegou.
Defina DTLS := True e preencha DTLSOptions para transportar os datagramas dentro de uma sessão DTLS. OnDTLSVerifyPeer entrega o certificado do peer para que você decida se o aceita.
Proxy leva os datagramas através de um UDP ASSOCIATE SOCKS5. Um proxy HTTP é recusado com EsgcUDPProxyNotSupported, porque apenas o SOCKS5 define um caminho UDP.
Cada OnUDPRead traz um TsgcUDPSocket: IP e Port identificam o remetente, LocalIP e LocalPort identificam a base local que o ICE depois publica como candidato host.
IPVersion é repassado diretamente ao socket subjacente, então defina-o como Id_IPv6 quando precisar do caminho IPv6.
Todo componente P2P de nível superior (TsgcSTUNClient, TsgcTURNClient, TsgcICEClient, TsgcRTCPeerConnection) usa este cliente internamente como seu transporte UDP.
Acesse a referência do componente, pegue o projeto demo pronto para executar e baixe a versão de avaliação.
| Ajuda online — TsgcUDPClient Referência completa de propriedades, métodos e eventos deste componente. | Abrir | |
| Projeto demo — Demos\35.P2P\01.UDP_Server_Client Exemplo pronto para executar. Acompanha o pacote sgcWebSockets — baixe a versão de avaliação abaixo. | Abrir | |
| Documento técnico (PDF) Recursos, início rápido, exemplos de código para Delphi & C++ Builder e referências de fontes primárias — somente deste componente. | Abrir | |
| Manual do usuário (PDF) Manual completo cobrindo todos os componentes da biblioteca. | Abrir |