FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
curiosidades
hola,
tengo una duda, veamos, los programas p2p tipo emule hacen un identificador del archivo. como hacer eso? lo sencillo seria identificar el archivo por nombre y tamaño pero estos p2p si el archivo tiene distinto nombre por que alguien despues de bajarlo se lo cambio lo sigue reconociendo como tal y lo engloba dentro de los archivos con mismo id. alguien podria indicarme como se hace eso? otra cosa, al englobar los archivos usan como una especie de grid es posible hacer lo mismo o algo parecido. bueno esto me importa menos pero lo otro si que parece muy curioso y me gustaria informacion sobre el tema. un saludo y muchas gracias |
#2
|
||||
|
||||
Yo soy bruto pa esas cosas, pero eso nunca me ha detenido antes para responder
Es probable que usen un algoritmo de checksum o un hash (aun mas probable) para determinar la equivalencia entre dos archivos...
__________________
El malabarista. |
#3
|
||||
|
||||
ping...
es justamente eso... el generar un "checksum" o llave (hash) del contenido del archivo. Para eso hay mil un programas que, dandole un input (archivo), te generan el hash o llave que identifica el archivo. Segun la teoria de criptografia, el hash supone que, para una cadena X de N caracteres, siempre generará una cadena de longitud fija (y), y que será irrepetible en cuanto el input sea diferente. O sea, ya sea que se pase "ector" o "hector" o "cualquierotracadenadecaracteresqueseavalidaparalaprueba", debe generar una cadena de longitud fija, que sera unica, y que identificara el contenido del parametro. Referencias enhttp://www.openbsd.org
__________________
Héctor Geraldino Software Engineer |
#4
|
|||
|
|||
gracias
si di cuenta de que usaban el algoritmo de md5.
gracias sobre la segunda parate Cita:
un saludo |
#5
|
||||
|
||||
Ya eso es un asunto de GUI. Un grid como el de www.devexpress.com o un arbol hacen el truco...
__________________
El malabarista. |
#6
|
|||
|
|||
gracias
muchas gracias.
la verdad es que no esperaba una respuesta tan rapida. con todo esto me estoy creciendo y creo que os voy a formular una pregunta mas dificil... como se hace para tranferir 2 archivos por tcp y que se pueda resumir la descarga si esta se interrrumpe? lo he intentado con las indy pero nada. esta misma pregunta la formule hace tiempo y nadie me respondio, a ver si tengo suerte ahora. el post que puse con su codigo esta aqui: http://www.clubdelphi.com/foros/showthread.php?t=15952 por favor animaos y hechadle un ojo gracias |
#7
|
||||
|
||||
Eso no lo hace automaticamente el protocolo FTP?
Tal vez deberias buscar una implementacion open source de un servidor FTP, a ver que tal... Por otro lado, a lo bruto, la idea seria crear una tabla que guarde los bytes que se llevan y empezar a copiar a partir del ultimo... pero no se que tan dificil resulte...
__________________
El malabarista. |
#8
|
|||
|
|||
lo de guardar los byte no es dificil, es mas las indy tiene una llama que indica el btye de la transferencia en que se encuentra. el problema radica en que una vez interrrumpida la transferencia el archivo tranferido se queda con un tamaño de cero con lo cual aunque sepas la posicion en donde se deberia reanudar no sirve para nada. lo de montar un ftp no me sirve, antes utilizaria el protocolo http, pero tampoco quiero. el tema esta en usar tcp. no quiero evitar los problemas sino aprender cosas nuevas.
un saludo y graias |
#9
|
||||
|
||||
Cuando recibes el stream, debes ir guardando en un archivo temporal.... asi no se pierde el progreso. Veo que es como lo hacen los demas programas
__________________
El malabarista. |
#10
|
|||
|
|||
muchas gracias lo probare
|
|
|
|