Problema.

BS2_Intialize devuelve el error BS2_SDK_ERROR_CANNOT_LISTEN_SOCKET(-103)

 

Entorno.

Estaba bien hasta el SDK 2.4.x, pero el problema ocurre con SDK 2.5.0 o una versión superior

 

Causa.

El puerto de escucha del servidor se duplica con otro programa. Por ejemplo, BioStar 2 SW está utilizando el puerto del servidor (Device->Modo de servidor) 51212 como predeterminado. El puerto del servidor SDK también se establece en 51212. Desde SDK 2.5.0, SDK se apagará si el puerto de escucha es utilizado por otro programa.

 

Solución.

Cambie el puerto del servidor mediante la API BS2_SetServerPort.

 

Código de ejemplo

El pedido es GetServerPort ->SetServerPort -> Initial

 

int delayTerminate  =  0;

Puerto UInt16 =  entorno BS2. BS2_TCP_SERVER_PORT_DEFAULT;

Resultado de BS2ErrorCode =  (BS2ErrorCode)API. BS2_GetServerPort(sdkContext, puerto de salida);

if (resultado  !=  BS2ErrorCode. BS_SDK_SUCCESS)

            {

Consola. WriteLine("GetServerPort: Got error({0})". ,  resultado);

                ClearSDK(delayTerminate);

                volver;

            }

 

Consola. WriteLine("¿Qué número de puerto de servidor usará en IPv4? [{0} Predeterminado]",  puerto);

Consola. Escribir(">>>> ");

puerto =  Util. GetInput(puertoUInt16);

result =  (BS2ErrorCode)API. BS2_SetServerPort(sdkContext,  port);

if (resultado  !=  BS2ErrorCode. BS_SDK_SUCCESS)

            {

Consola. WriteLine("SetServerPort: Got error({0})". ,  resultado);

                ClearSDK(delayTerminate);

                volver;

            }

C

 

El puerto cambiado está debajo.

Mensaje de texto

Descripción generada automáticamente

*. Si desea utilizar el puerto en lugar de otro puerto, establezca la función de puerto del servidor al iniciar el servidor.