1. Documentación
Este documento es una descripción funcional de algunas funciones que no son de uso común en el sdk. Estas funciones pueden ser útiles para su proyecto en escenarios específicos. Antes de leer este documento, por favor lea la descripción del sdk de otra función general, que describe los principios del sdk y cómo integrarlo más claramente. También hemos hecho proyectos de ejemplo para las funciones avanzadas, por favor revise los proyectos en "demo advanced functions".
2. Resolución de conflictos entre puertos
Después de años de observación y estadísticas, el problema de conflicto de puertos sólo se produce en dispositivos cliente individuales y la probabilidad de ocurrencia y baja. Sin embargo, con el fin de resolver este problema por completo, todavía le recomendamos que utilice nuestras funciones avanzadas para resolver este problema por completo.
Dado que nuestro sdk se basa en las "reglas de reenvío" que se configuranAbra el puerto correspondiente en el dispositivo clienteDe este modo, la probabilidad de que se produzcan conflictos de puertos en clientes individuales es muy baja.Existen dos tipos de conflictos entre puertos::
- Escenario 1: Un puerto que usted configuró ha sido utilizado por otra aplicación en un cliente individual.ocupadoel usuario no podrá utilizar su aplicación correctamente;
- El segundo escenario: tienes múltiples aplicaciones pero usas la misma instancia, y los usuarios a veces abren varias de tus aplicaciones al mismo tiempo en el mismo dispositivo; la primera aplicación que el usuario abre tiene todos los puertos de tu instancia ocupados, y cuando la segunda aplicación se abre no podrá abrir esos puertos. Esto no es un problema en un PC, la segunda aplicación que se abre funciona bien, porque la segunda aplicación se conecta al sdk a través de la primera aplicación.Pero es un problema en el móvilLa segunda aplicación sigue siendo normal al principio, porque la segunda aplicación se conectará al sdk a través de la primera aplicación, la primera aplicación se cortará a un segundo plano mientras el usuario está utilizando la segunda aplicación, y después de un tiempo la primera aplicación puede ser hibernada por el sistema, y entonces la segunda aplicación no será capaz de conectarse. La solución a este problema es muy sencilla.El procedimiento de codificación es el siguiente::
dunSetAutoChangePort(1);//set para cambiar automáticamente el puerto de conflicto, sólo necesita ser llamado una vez
int ret = clinkStart(key);//escudo start, algunos sistemas usan start Vea otro documento para más detalles, sólo necesita ser llamado una vez
// Llama a la siguiente línea de código para obtener un nuevo puerto cuando se necesite una nueva conexión
int new_tcpPort = dunGetCurrentTCPPort("127.0.10.21", 600);//obtener el nuevo puerto tcp correspondiente
// a continuación utilice new_tcpPort para conectarse a la aplicación
Página 3 Manual de funciones avanzadas del sdk
Página 4
//connect("127.0.10.21", new_tcpPort) Por ejemplo esta línea de pseudo-código