Determinar el flujo de una transmision en http y otros problemas de red en dispositvos moviles

09/12/2005 - 16:45 por juancarlosolivares | Informe spam
Hol@

saben si existe una forma de determinar cuando se encuentra el final de
un flujo en una transmision HTTP. El problema que tengo es el
siguiente: estoy realizando un Proxy para disposiivos móviles Pocket
PC, capturo el paquete que envia el navegador mando el mensaje tal cual
a otro proxy en este caso Squid y este me devuelve una respuesta (o en
general cualquier servidor Web) pero el problema es que no existe una
forma exacta de saber el final de la transmision. He intentado parsear
el mensaje de respuesta para intentar obtener el content-length que
determina el tamaño del archivo, el problema es que no es un estandar
ni en htt/1.0 ni en http/1.1 algunas respuestas no llevan este campo y
si la llevan en ocasiones dan un numero erroneo del tamaño. He
intentado esperar hasta que el servidor cierra la conexion pero en
ocasiones no la cierra o peor aun la cierra antes. Trato de leer el
flujo como si fuera un archivo pero ya he intentado de todo y nada jala
muy bien sockets, Stremas, NetworkStream, BinaryStream, etc. También
intente con la clase WebRequest (HttpWebRequest a traves de WebClient)
y funciona (un poco lento ya que se espera hasta que se tenga todo el
flujo, este es otro problema que tambien tengo si se envia
inmediatamente el flujo recibido al navegador este da por terminado la
sesión por lo que se ven paginas o recursos incompletos) pero solo
funciona en equipos de escritorio, ya que cuando lo implemento en una
Pocket ya sea en emulador o dispositivo fisico este no funciona se
alenta demasiado. Ustedes han programado aplicaciones en dispositivos
móviles que funcionen como servicios?

Ya aprovechando el paso tengo otra duda, el servicio o programa que
estoy realizando para Pocket Funciona en modo texto, descargue una
consola para PPC 2003 y ya veo mensajes cuando corro dicha aplicacion
en una Pocket que no tiene consola se muestra el icono de espera, hay
alguna forma de evitar que aparesca dicho icono o en su defecto correr
un programa en la pocket como si fuera un demonio o servicio en
transfondo.

Espero me respondan ya que ando desesperado y desilusionado por lo que
pueden realizar las Pocket PCs.
 

Leer las respuestas

#1 Pedro Maicas
11/12/2005 - 11:33 | Informe spam
On 9 Dec 2005 07:45:18 -0800, wrote:

saben si existe una forma de determinar cuando se encuentra el final de
un flujo en una transmision HTTP. El problema que tengo es el



Para un proxi es facil, solo tienes que detectar el momento
en el que se cierra el socket de cualquiera de los extremos,
y entonces cierras tu los tuyos.

En el cliente y servidor, depende la version, las primeras
versiones el servidor servía el fichero completo y luego cortaba
(cerraba el socket). Las siguientes versiones creo que debe cerrar
antes el cliente, pues el servidor se queda esperando por si
hay más peticiones en el mismo socket.


Saludos :-) - Pedro -

http://www.maicas.net/

Preguntas similares