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 Unai Zorrilla Castro
10/12/2005 - 19:10 | Informe spam
Que tocho de pregunta... mi ma..

Bien en cuanto al primer tema, vamos por pasos si lees el flujo con
HttpWebRequest te devuelve un Stream el cual puedes ir leyendo mientras tenga
datos, tienes un ejemplo en

http://msdn.microsoft.com/library/d...mtopic.asp

Saludos
Unai Zorrilla Castro
MVP - Compact Framework

"" escribió:

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.


Preguntas similares