Biblioteca de comunicação de soquete de plataforma cruzada Delphi
Autor: Winddriver ([email protected])
Inglês
Doar
Se você achar este projeto útil para você, considere doar e apoiar o autor para continuar atualizando


Atualizar registros
2023.09.18
- Suporta FPC 3.3.1
- Suporte OpenSSL 3.x
- Adicionado o cliente HTTP ICROSSHTTPCLIENT (suporta o envio compactado GZIP/Deflate)
- Adicionado cliente WebSocket IcrosswebSocket
- O servidor HTTP suporta a coleta de dados compactados GZIP/Deflate
- Reconstrução de código parcial
- Alguns pequenos problemas corrigidos
2020.07.07
- IcrosshttpServer e icrosswebsocketServer suportam http e https
Obrigado a Xlnron pela sua ajuda
2019.02.17
- Vazamentos de memória fixa que podem causar por TiOEventThread
Obrigado a Viniciusfbb por descobrir e corrigir este problema
- Vazamentos de memória fixa causados por [fraco]
Quando usado com uma biblioteca de gerenciamento de memória de terceiros, ocorre um vazamento de memória. Robertodellapasqua descobriu esse problema e, finalmente, o Pony5551 encontrou a causa do problema. Muito obrigado! Essa deve ser uma falha na implementação interna [fraca] de Delphi, e o problema foi resolvido após a substituição [fraca] por [inseguro].
2019.01.15
- Adicionado suporte mbedTLS
- Habilitar Método de MbedTls: Ligue os dois interruptores de compilação __cross_ssl__ e __mbed_tls__ nas opções de compilação do projeto e adicione o diretório sob mbedobj ao caminho da biblioteca da plataforma correspondente
- Atualmente, o suporte ao mbedTLS não é estável o suficiente, por favor, não o use em ambientes de produção
2017.08.22
- Refatoração de código, muitas modificações foram feitas, veja o código -fonte para obter detalhes
- Várias novas interfaces foram adicionadas, consulte demos para obter detalhes para uso
- IcrossSocket
- ICROSSSSLSOCKET
- ICROSSSERVER
- ICROSSSSLSERVER
característica
Use diferentes modelos de IO para diferentes plataformas:
Windows
FreeBSD (Macosx, iOS ...)
Linux (Linux, Android ...)
Suporta concorrência extremamente alta
Pode executar mais de 100.000 números simultâneos, você precisa modificar o registro para ajustar o número máximo padrão de portas
Após testes preliminares, o ambiente de teste é OSX 10.9.5 na máquina virtual. Mesmo que o limite de alça do sistema seja modificado, ele pode abrir apenas mais de 32.000 conexões simultâneas no máximo. Talvez a versão do servidor OSX possa suportar uma simultaneidade mais alta.
Suporta IPv4 e IPv6 ao mesmo tempo
Cópia de memória zero
Passou no teste
- Windows
- OSX
- iOS
- Android
- Linux
Ambiente de desenvolvimento recomendado
- Para reproduzir a funcionalidade completa da plataforma cruzada, use Delphi 10.2 Tóquio e acima
- O requisito mínimo é apoiar a versão Delphi das funções genéricas e anônimas. Não estou muito claro sobre qual versão suportar funções genéricas e anônimas.
- É melhor usar o FPC versão 3.3.1 e acima
Algumas capturas de tela de teste
Benchmark HTTPS 
Servidor HTTP (Linux-Aarch64) 
Servidor HTTP (Linux-Loongarch64) 
Cliente HTTP (Linux-Aarch64) 
Cliente HTTP (Linux-Loongarch64) 
WebSocket Server (Linux-Aarch64) 
WebSocket Server (Linux-Loongarch64) 
WebSocket Client (Linux-Aarch64) 
WebSocket Client (Linux-Loongarch64) 
HTTP (servidor é Ubuntu 16.04 Desktop)
HTTPS (servidor é Ubuntu 16.04 Desktop)