Article View: es.comp.os.linux.programacion
Article #486Re: Transferencias de archivos
From: Pablo
Date: Thu, 06 Sep 2007 22:45
Date: Thu, 06 Sep 2007 22:45
97 lines
5263 bytes
5263 bytes
Oscar Garcia escribió: > No debes mezclar la transferencia del archivo en el socket del chat. > Dependiendo del tamaño del archivo y de la velocidad de conexión eso te > supondrá un retardo enormísimo. > Sí... creo que además complicaría mucho las cosas. > ¿Qué protocolo has usado? No has hablado nada acerca de él. > En principio para la transferencia de archivos pretendía usar TCP que es lo más habitual... Aunque ya habia pensado lo de la transferencia por difusión. Puede ser muy util pero quizá en futuras versiones si tiene éxito... (entonces necesitaría UDP claro) > Si quieres usar un protocolo similar al usado por FTP recuerda el > problema de los routers y los proxies... las personas ocultas tras ese > tipo de dispositivos no podrán recibir conexiones externas (sólo > realizarlas). > El programa está destinado a trabajar en un mismo segmento de red. La localización de ip's se realizaría mediante broadcast... Así que si eso funciona, probablemente, las conexiones también lo harán. Aunque la verdad es que por internet lo de los routers es un problema. > Enviar el archivo en la misma conexión que usas para conectar al chat te > evitará ese tipo de problemas, pero siempre que tengas un buen protocolo > que separe una cosa de otra. > Si consigo establecer una no habrá problema con dos. :-) > ¿Qué protocolos has programado que emulen el nivel de sesión y presentación? > Todavía no he programado gran cosa. Pero almenos el nivel de sesión lo tengo casi decidido. Me falta por decidir algunos detalles sobre los "handshakes" de la encriptación y eso... Pero bueno eso será más o menos como SSL. En cuanto al protocolo de presentación: > Una transferencia de archivos puede comenzar con una descripción del > nombre de archivo y su longitud, seguido por su contenido. > Creo que lo más práctico es enviar la longitud, nombre y descripción del archivo en un paquete mezclado en la conexión de chat, a modo solicitud. Dejando la conexión de transferencia ya establecida, con claves de encriptación y todo ya resuelto antes. > Ten en cuenta que una transferencia de archivos ralentizará (aumentará > la latencia) de las conversaciones dependiendo del tamaño de bloque que > definas para cada trocito de archivo. > Eso es lo que me preocupa... > Para mejorar la transferencia de archivos sin mermar demasiado la > latencia de salida puedes programarte una ventana de transferencia, de > modo que se envíen los i siguientes paquetes cuando se reciban los > mensajes de recepción. Durante el comienzo de la transferencia > posiblemente la latencia sea notable, pero una vez se haya enviado > completamente la ventana sólo se enviará poco a poco el tamaño pequeño > del mensaje, mejorando la latencia una vez estabilizada la transferencia. > Creo que eso es lo que buscaba. Como es un programa para redes locales, la velocidad es un punto muy importante. Así que probaré lo de la ventana... No importa que haya un poco de latencia al principio. > Hombre.. trabajar, trabajar.. he hecho muchos protocolos de > transferencia de archivos, entre ellos uno que trabaja en difusión > usando UDP para enviar un mismo archivo a multitud de destinos usando > una única vez el ancho de banda de la red. Es una lástima que no se perfeccione ese sistema porque se lograría realizar streaming con anchos de banda pequeños... Aunque quizá sea un poco peligroso a gran escala. :-\ Fenix escribió: > Podrías mirar como lo hacen otros directamente... es lo bueno del > código fuente libre. :) > Ya había pensado en esa posibilidad... Pero los programas que se me ocurren que utilizan transferencia de archivos son demasiado complicados para mí... Es cuestion de tiempo, está claro, pero es una parte muy pequeña del programa para dedicarle tanto. Gracias por vuestra atención, a ver si el programa evoluciona y termina siendo una herramienta útil. Saludos.
Technical Details
Message-ID:
<Bq%Di.6500029$D7.12156711@telenews.teleline.es>Path:
arc1-ca.pugleaf.net!g2news2.google.com!news4.google.com!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!telenews.teleline.es!not-for-mailReferences:
<VDJCi.6445515$D7.12079038@telenews.teleline.es> <fbh1r3$bs3$1@cormoran.emeteo.local>Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,375ebb79da2d042c X-Google-Attributes: gidf86c8,public,usenet X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news2.google.com!news4.google.com!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!telenews.teleline.es!not-for-mail X-Trace-PostClient-IP: 213.60.84.85 From: Pablo <palmail2004-news@yahoo.es> User-Agent: Thunderbird 2.0.0.4 (X11/20070604) MIME-Version: 1.0 Newsgroups: es.comp.os.linux.programacion Subject: Re: Transferencias de archivos References: <VDJCi.6445515$D7.12079038@telenews.teleline.es> <fbh1r3$bs3$1@cormoran.emeteo.local> In-Reply-To: <fbh1r3$bs3$1@cormoran.emeteo.local> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Lines: 98 Message-ID: <Bq%Di.6500029$D7.12156711@telenews.teleline.es> Date: Thu, 06 Sep 2007 22:45:53 GMT NNTP-Posting-Host: 10.20.31.4 X-Complaints-To: usenet@teleline.es X-Trace: telenews.teleline.es 1189118753 10.20.31.4 (Fri, 07 Sep 2007 00:45:53 MET DST) NNTP-Posting-Date: Fri, 07 Sep 2007 00:45:53 MET DST Organization: Terra Networks