Biblioteca de comunicación de socket de plataforma cruzada de Delphi
Autor: Winddriver ([email protected])
Inglés
Donar
Si le parece útil este proyecto, considere donar y apoyar al autor para que continúe actualizando


Registros de actualización
2023.09.18
- Admite FPC 3.3.1
- Soporte OpenSSL 3.x
- Se agregó el cliente HTTP ICROSSHTTPClient (admite el envío comprimido GZIP/Deflate)
- Se agregó el cliente WebSocket ICROSSWEBSOCKECK
- El servidor HTTP admite la recopilación de datos comprimidos GZIP/desinflar
- Reconstrucción del código parcial
- Algunos problemas menores solucionaron
2020.07.07
- ICROSSHTTPSERVER e ICROSSWebSocketServer admite tanto HTTP como HTTPS
Gracias a Xlnron por tu ayuda
2019.02.17
- Fugas de memoria fija que pueden causar por tioeventThread
Gracias a ViniciusFBB por descubrir y solucionar este problema
- Fugas de memoria fijas causadas por [débil]
Cuando se usa con una biblioteca de administración de memoria de terceros, se produce una filtración de memoria. Robertodellapasqua descubrió este problema, y finalmente Pony5551 encontró la causa del problema. ¡Muchas gracias! Esto debería ser un defecto en la implementación interna [débil] de Delphi, y el problema se resolvió después de reemplazar [débil] con [inseguro].
2019.01.15
- Soporte de MBedTLS agregado
- Método de habilitación de mbedtls: active los dos interruptores de compilación __cross_ssl__ y __mbed_tls__ en las opciones de compilación del proyecto, y agregue el directorio en mbedobj a la ruta de la biblioteca de la plataforma correspondiente
- En la actualidad, el soporte de MBedTLS no es lo suficientemente estable, por favor no lo use en entornos de producción
2017.08.22
- Refactorización del código, se han realizado muchas modificaciones, consulte el código fuente para obtener más detalles
- Se han agregado varias interfaces nuevas, consulte Demos para obtener detalles sobre el uso
- Icrosssocket
- ICrosssslsocket
- ICROSSSERVER
- ICROSSSSLSERVER
característica
Use diferentes modelos IO para diferentes plataformas:
Windows
FreeBSD (MacOSX, iOS ...)
Linux (Linux, Android ...)
Admite una concurrencia extremadamente alta
Puede ejecutar más de 100,000 números concurrentes, debe modificar el registro para ajustar el número máximo predeterminado de puertos
Después de las pruebas preliminares, el entorno de prueba es OSX 10.9.5 en la máquina virtual. Incluso si se modifica el límite de manejo del sistema, solo puede abrir más de 32,000 conexiones concurrentes como máximo. Quizás la versión del servidor OSX puede admitir una mayor concurrencia.
Admite IPv4 e IPv6 al mismo tiempo
Copia de memoria cero
Pasó la prueba
- Windows
- OSX
- iOS
- Androide
- Linux
Entorno de desarrollo recomendado
- Para jugar la funcionalidad completa de la multiplataforma, use Delphi 10.2 Tokio y arriba
- El requisito mínimo es admitir la versión Delphi de las funciones genéricas y anónimas. No estoy muy claro sobre qué versión admitir funciones genéricas y anónimas.
- Es mejor usar FPC versión 3.3.1 y superior
Algunas capturas de pantalla de prueba
Punto de referencia HTTPS 
Servidor HTTP (Linux-Aarch64) 
Servidor HTTP (Linux-Loongarch64) 
Cliente HTTP (Linux-Aarch64) 
Cliente HTTP (Linux-Loongarch64) 
WebSocket Server (Linux-Aarch64) 
Servidor WebSocket (Linux-Loongarch64) 
WebSocket Client (Linux-Aarch64) 
WebSocket Client (Linux-Loongarch64) 
Http (el servidor es Ubuntu 16.04 Desktop)
HTTPS (el servidor es Ubuntu 16.04 Desktop)