Socket En Internet, Descargar


Objetivo: Socket En Internet, Descargar
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!

Objetivo: Re: Socket En Internet, Descargar
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

última edición por soplo el Domingo, 03 Julio 2011, 13:38; editado 1 vez
Perfil MP  
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:

' 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


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.

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No 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