Red de conocimiento informático - Material del sitio web - Cómo resolver el problema del tiempo de espera de operación del socket

Cómo resolver el problema del tiempo de espera de operación del socket

Descripción general de la configuración de tiempos de espera predeterminados para operaciones de socket

La clase StreamSocket

se implementa en Windows

aplicaciones de tiempo de ejecución

TCP

Enchufe. TCP

TCP

Un socket debe establecer una conexión para enviar o recibir datos de la red. En Windows

8.1, Windows

Phone

8.1

y

Windows

Básico implementado en Server

2012

TCP

El socket se utilizará para todos

TCP

Funcionamiento del socket de conexión, con tiempo de espera predeterminado establecido. Cuando se utilizan nombres de host o puntos finales, el tiempo de espera predeterminado es

3

minutos (180

segundos) por par de direcciones de origen y destino. Por lo tanto, si el nombre de host de destino tiene dos direcciones

IP

, la operación de conexión solo expirará después de aproximadamente

6

minutos. Este tiempo de espera predeterminado puede ser demasiado largo para la experiencia del cliente al utilizar aplicaciones en tiempo de ejecución de

Windows

. Por lo tanto, es posible que las aplicaciones que utilizan la clase

StreamSocket

quieran establecer un tiempo de espera personalizado más corto para las operaciones de conexión de sockets de transmisión. Las clases

DatagramSocket

y

StreamSocket

no tienen un tiempo de espera predeterminado al enviar o recibir datos de red. Por lo tanto, cualquier operación de envío o recepción esperará para siempre. Es posible que las aplicaciones en tiempo de ejecución de Windows

Windows

que utilizan sockets deseen establecer tiempos de espera para estas operaciones para una mejor experiencia del cliente.

StreamSocketListener

La clase siempre escuchará y esperará las solicitudes de conexión entrantes.

Cómo establecer tiempos de espera personalizados para operaciones de socket

JavaScript

El lenguaje admite eventos cronometrados que ejecutan código específico en intervalos específicos.

JavaScript

Eventos cronometrados

setInterval()

-

En un intervalo de tiempo específico (milisegundos) Ejecutar una función repetidamente.

setTimeout()

-

Ejecute la función una vez después de esperar el número especificado de milisegundos.

La función de evento de tiempo de espera se implementa en el objeto

HTML

DOM

Ventana

.

WinJS

El espacio de nombres proporciona funciones especiales para

objetos de Windows

JavaScript

p >

Biblioteca, que incluye

objetos WinJS.Promise

. El método timeout(timeout,

promise)

encapsula la función

setTimeout

. Si la promesa no se completa dentro del número de milisegundos especificado en el parámetro

tiempo de espera

, las aplicaciones

Windows

pueden usar

timeout(timeout,

promesa)

cancela esta promesa.

Si la operación del socket no se completa dentro del intervalo de tiempo especificado en el parámetro

timeout

, puede llamar a

timeout( tiempo de espera,

promesa)

método y tiempo de espera de la operación del socket como el parámetro

promesa

. Una operación de socket se puede cancelar mientras la operación permanezca pendiente.

WinJS.Promise

Objeto y

tiempo de espera(tiempo de espera,