2010-03-28 15 views
11

Estoy desarrollando una interfaz java entre un servidor de transmisión y un cliente flash. Noté que los datagramas UDP pueden llegar a mi interfaz fuera de servicio, incluso si ambos procesos se ejecutan localmente.¿Por qué obtengo los datagramas UDP fuera de servicio incluso con procesos que se ejecutan localmente?

¿Eso es normal? Pensé que como ningún datagrama tiene que pasar por ningún enrutador ni ningún dispositivo de red, entonces eso no debería estar pasando.

+1

Esa es una buena pregunta, también estoy interesado en posibles * causas * de esto. –

Respuesta

7

En realidad, no hay garantías de pedidos y recepción de paquetes UDP, incluso si son enviados por localhost en localhost. Solo porque la especificación del protocolo no implica nada al respecto.

Puesto que no puede hacer suposiciones sobre ellos usted debe optar por utilizar TCP o manejar reordenamiento usando un número de secuencia manejada por sus programas ..

8

Esto dependería del sistema operativo. Si bien no se pudo especificar un sistema operativo, no es importante de todos modos. Para seguir siendo portátil, siempre debe prever que sus conectores de datagramas reciban datos desordenados.

+0

+1 para el bit de anticipación. –

2

Aunque está ejecutando localhost, es de esperar que los datagramas UDP estén fuera de secuencia en la implementación real.

Si los necesita en secuencia, intente con TCP.

0

UDP no se especifica para preservar la secuencia, ya que por encima de los carteles Todos han dicho, pero si no hay enrutadores intermedios también sospecho que hay un error en su código.

+7

Nah. Es probable que se deba al manejo de paquetes multiprocesador. –

+0

Por favor, explique este comentario. – EJP

+14

Wow, acabo de notar este comentario. No etiquetó mi nombre, entonces no hay notificación. De todos modos: los sistemas operativos que aceleran el manejo de paquetes distribuyendo el trabajo a varios núcleos pueden haber procesado los paquetes UDP en diferentes núcleos y haberlos colocado en la cola de lectura de la aplicación fuera de servicio. –

Cuestiones relacionadas