Acudo a ustedes porque no sé ni como hacerle, ni que buscar. Estoy totalmente perdido en el tema.
Lo que me propongo a hacer es de un fichero subido a internet conseguir su header. O lo que es lo mismo, obtener los primeros 10 bytes de un binario en internet.
He estado viendo el como usar los sockets que según recuerdo de un mensaje escrito por soplo (mensaje que no encuentro) éstos me pueden servir precisamente para lo que quiero.
Alguien puede ser tan amable de proveerme un ejemplo que me lleve a lo que tengo que hacer???????????
Otra pregunta, en relación al tema: Puedo decirle al socket (o al server por medio del socket [no sé como trabaja todo esto]) que me envíe una parte intermedia del binario, por ej del byte 3F1 al 401?????
Realmente espero su ayuda, muchas gracias de antemano.
Saludos!
Socket En Internet, Descargar
Objetivo: Re: Socket En Internet, Descargar
última edición por soplo el Domingo, 03 Julio 2011, 13:38; editado 1 vez
Hola
Si abres un socket al servidor luego puedes leer los primeros 10 bytes así.
dim Datos as string
read #s, datos,10
con lo que obtienes un string de 10 caracteres cada uno de los cuales corresponde al valor binario que estás recibiendo. También podrían ser bytes.
Dim Datos as new byte[], contador as integer, B as byte
for contador=1 to 10
read #S,B
Datos.add(B)
next
Pero ambos casos requieren que el servidor te envíe los diez primeros bytes de ese fichero. Otra alternativa es descargarlo (mediante ftp o un wget) y luego leerlo así (supondiendo que esté en un fichero temporal llamado t.tmp)
Dim Datos as string
Datos=left(file.load("t.tmp"),10)
O igual que antes si lo quiers en bytes
Dim Datos as new byte[], contador as integer, B as byte
for contador=1 to 10
B=cbyte( chr(mid ( file.load("t.tmp") ,contador,1)))
Datos.add(B)
next
bueno, supongo que se entiende
Si abres un socket al servidor luego puedes leer los primeros 10 bytes así.
dim Datos as string
read #s, datos,10
con lo que obtienes un string de 10 caracteres cada uno de los cuales corresponde al valor binario que estás recibiendo. También podrían ser bytes.
Dim Datos as new byte[], contador as integer, B as byte
for contador=1 to 10
read #S,B
Datos.add(B)
next
Pero ambos casos requieren que el servidor te envíe los diez primeros bytes de ese fichero. Otra alternativa es descargarlo (mediante ftp o un wget) y luego leerlo así (supondiendo que esté en un fichero temporal llamado t.tmp)
Dim Datos as string
Datos=left(file.load("t.tmp"),10)
O igual que antes si lo quiers en bytes
Dim Datos as new byte[], contador as integer, B as byte
for contador=1 to 10
B=cbyte( chr(mid ( file.load("t.tmp") ,contador,1)))
Datos.add(B)
next
bueno, supongo que se entiende
última edición por soplo el Domingo, 03 Julio 2011, 13:38; editado 1 vez
Objetivo: Re: Socket En Internet, Descargar
Gracias soplo!
Pero el problema que tengo es que no sé cómo solicitarle el envío del binario al server. Según como lo veo tendria primero que conectarme el server por medio de su ip, luego cambiarme al directorio del server en donde está el binario y despues solicitarle que me envíe el binario, recivir 10 bytes y terminar la conexión. Pero todo ello como lo hago con un socket?¿?¿
De mientras he visto el uso sel HttpClient, y tengo el siguiente código:
Ese fragmento cubre bien lo que requiero, pero me gustaria saber usar los sockets. Así que espero soplo que puedas decirme al menos si es posible hacer lo que quiero con los sockets?
Gracias!
Saludos!
Pero el problema que tengo es que no sé cómo solicitarle el envío del binario al server. Según como lo veo tendria primero que conectarme el server por medio de su ip, luego cambiarme al directorio del server en donde está el binario y despues solicitarle que me envíe el binario, recivir 10 bytes y terminar la conexión. Pero todo ello como lo hago con un socket?¿?¿
De mientras he visto el uso sel HttpClient, y tengo el siguiente código:
' gambas module file
PRIVATE file_internet AS HttpClient
PRIVATE bCad AS NEW Byte[]
PUBLIC SUB Main()
filenet = NEW HttpClient AS "filenet"
filenet.Async = TRUE
filenet.Timeout = 10
filenet.URL = URL
filenet.Get()
END
PUBLIC SUB filenet_Read()
DIM i AS Integer
DIM buf AS Byte
FOR i = 0 TO Lof(filenet) - 1
READ #filenet, buf, 1
'PRINT buf
bCad.Add(buf)
NEXT
IF bCad.Count > 10 THEN
filenet.Stop()
filenet.Close()
ENDIF
END
PRIVATE file_internet AS HttpClient
PRIVATE bCad AS NEW Byte[]
PUBLIC SUB Main()
filenet = NEW HttpClient AS "filenet"
filenet.Async = TRUE
filenet.Timeout = 10
filenet.URL = URL
filenet.Get()
END
PUBLIC SUB filenet_Read()
DIM i AS Integer
DIM buf AS Byte
FOR i = 0 TO Lof(filenet) - 1
READ #filenet, buf, 1
'PRINT buf
bCad.Add(buf)
NEXT
IF bCad.Count > 10 THEN
filenet.Stop()
filenet.Close()
ENDIF
END
Ese fragmento cubre bien lo que requiero, pero me gustaria saber usar los sockets. Así que espero soplo que puedas decirme al menos si es posible hacer lo que quiero con los sockets?
Gracias!
Saludos!
Objetivo: Re: Socket En Internet, Descargar
si lo haces por socket desde el cliente lo único que puedes hacer es enviarle una señal (por ejemplo ** y el server al recibir esa señal sabe que tiene que devolverte la información X que en tu caso serán los 10 bytes de la porra.
Si no tendrás que utilizar una sesión ftp o bien wget y descargarlo.
Si no tendrás que utilizar una sesión ftp o bien wget y descargarlo.
Página 1 de 1
No puede crear mensajesNo puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario
Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.
Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo
Página generada en:: 0.1432s (PHP: -43% SQL: 143%)
Consultas SQL: 30 - Debug off - GZIP Activado