-----------------------------------------------------------------------------
  Paquete tcpdl 2.5                                            Octubre 1998


                                CONTENIDOS
                                ==========

 Este paquete consta de los siguientes ficheros:

    tcpdl 2.5      - Programa capturador de documentos.

    tcpdlpp 1.5    - Procesador de los documentos capturados.

    tcpdl.doc      - Este documento que lee.

    tcpdl_html     - Subdirectorio que contiene una versión
                     de este documento en formato HTML.

    urllist        - Ejemplo de fichero con la lista de direcciones
                     URL que el programa capturador debe visitar.

    tcpdl.config   - Ejemplo de fichero de configuración de tcpdl.

    tcpdlpp.config - Ejemplo de fichero de configuración de tcpdlpp.


                               INTRODUCCIÓN
                               ============

 "tcpdl" es un programa para capturar ficheros de servidores http.  Debido a
 su  capacidad  para explorar y utilizar los enlaces referenciados en dichos
 ficheros  para  capturar  nuevos  documentos,  usted  puede capturar sitios
 completos  para  visitarlos  posteriormente con tranquilidad fuera de línea
 (desconectado).

 "tcpdlpp"  es  un programa para procesar con posterioridad los ficheros que
 han  sido  capturados  con "tcpdl":  el programa modifica adecuadamente las
 referencias  de  cada  fichero  HTML  para que sean invocadas sus versiones
 locales  (las que ha capturado y se encuentran almacenadas en su equipo) en
 lugar  de  su  versión remota cuando navegue a través de ellas...  aquellas
 que aluden a documentos no capturados se mantienen con su URL completo.


                                 COPYRIGHT
                                 =========

                  tcpdl - Copyright © 1996 Patrik Nilsson
               Copyright © 1997, 1998 Ramjam Consultants Ltd

          tcpdlpp - Copyright © 1997, 1998 Ramjam Consultants Ltd

                 Este paquete es de distribución gratuíta,
                       pero no puede ser incluído en
                  ninguna colección de software comercial,
                     salvo Aminet, sin permiso previo.


                              REQUERIMIENTOS
                              ==============

 Para  usar  "tcpdl"  necesita  una pila TCP/IP y una conexión a un servidor
 http  (tanto  "tcpdl"  como "tcpdlpp" deberían funcionar en cualquier Amiga
 que soporte una pila TCP).

 "tcpdl"  necesita  habitualmente  1  MB  de  RAM aproximadamente, junto con
 500-1000 bytes por cada fichero que debe ser capturado y "tcpdlpp' requiere
 sobre  unos  100 KB,  junto con 100 bytes por fichero procesado.  Además se
 requiere  espacio  en  disco equivalente al doble del tamaño (en el peor de
 los casos) de los ficheros que van a ser capturados.


                                  SOPORTE
                                  =======

                Por favor, informe sobre cualquier problema
                    y envíe sugerencias o comentarios a:
                         <support@ramjam.u-net.com>

                  La versión más reciente de este producto
                       podrá encontrarla siempre en:
                        http://www.ramjam.u-net.com/

                 Las actualizaciones más importantes pueden
                 también encontrarse disponibles en Aminet.

 No  es necesario registrarse para utilizar este programa, pero aquellos que
 lo hagan serán informados de las actualizaciones que se produzcan.

 Ambos  programas  han  sido optimizados para su uso con el procesador 68000
 para conseguir una versión lo más genérica posible.


                            PROBLEMAS CONOCIDOS
                            ===================

  tcpdl:

  - No maneja correctamente enlaces de ficheros HTML
    en los que se especifique una <BASE>.
    Está planeada una corrección para una futura versión.

  - No permite acceder a lugares que
    requieran identificador de usuario/clave de acceso.
    Está planeada una mejora para una futura versión.

  - No soporta la captura automática de un URL referenciado
    a través del nombre del atributo de la etiqueta de un objeto:
    esto es debido a que el nombre del atributo no siempre
    se aplica a un URL. Como la etiqueta de un objeto es sólo
    soportado por IE3, y el nombre del atributo que alude a un URL
    es habitualmente aplicable sólo a IE3, no parece que sea
    una restricción significativa. No se ha planeado su corrección.

  tcpdlpp:

  - No maneja correctamente enlaces de ficheros HTML
    en los que se especifique una <BASE>.
    Está planeada un corrección para la versión 1.6.


                        GARANTÍAS/RESPONSABILIDADES
                        ===========================

 Se  ha  invertido  un  gran  esfuerzo  para que estos programas sean lo más
 seguros/estables  posibles.   Sin embargo, no damos ninguna garantía de que
 el programa haga lo descrito en todos los casos.

 Estos  programas  se  utilizarán  por  cuenta  y riesgo del usuario:  no se
 aceptará  ninguna  responsabilidad  por  la pérdida de datos resultante del
 empleo de estos programas.


                              AGRADECER A...
                              ==============

                         Gracias a  Patrik Nilsson
                    por la versión original de "tcpdl".

                      Gracias a David Stroud por crear
                     la versión HTML de este documento.

             Gracias también a todos los usuarios del programa
                    por sus comentarios y sugerencias.


                     CAMBIOS DESDE LA VERSIÓN ANTERIOR
                     =================================

 tcpdl
 -----

 2.4a -> 2.5:

 - Añadida  opción  NOWAIT que permite salir de "tcpdl" sin tener que pulsar
   antes  la  tecla  Retorno  ó  <-|.   Esta opción puede ser utilizada como
   argumento de línea de comandos o como opción de configuración (fichero de
   configuración).

 - Añadido  botón de tamaño en la ventana (parte inferior derecha) de estado
   para poder ajustar la anchura de la ventana (la altura está prefijada por
   el número de tareas especificadas).

 - Añadida opción PUBSCREEN que permite a "tcpdl" abrir su ventana de estado
   en  la  pantalla  pública  especificada.   Si  no  se  especifica ninguna
   pantalla  pública  se  utilizará  la  del  Workbench  por defecto como en
   versiones  anteriores.  Esta opción puede ser utilizada como argumento de
   línea   de   comandos   o   como  opción  de  configuración  (fichero  de
   configuración).

 - Añadida  opción  FONT  que permite definir la tipografía a utilizar en la
   ventana  de  estado  de  "tcpdl".  Por defecto se utilizará la tipografía
   Xen.  Esta opción puede ser utilizada como argumento de línea de comandos
   o como opción de configuración (fichero de configuración).

 - Añadida  opción FONTSIZE que permite definir el tamaño de la tipografía a
   utilizar  en  la  ventana  de  estado de "tcpdl".  Por defecto, el tamaño
   utilizado  es 9.  Esta opción puede ser utilizada como argumento de línea
   de comandos o como opción de configuración (fichero de configuración).

 - Añadida la opción PRIORITY que permite definir la prioridad máxima de las
   tareas  tcpdl  (se  crearán  tantas como documentos a capturar a la vez).
   Por  defecto  se  define  una  prioridad  de  2.   Esta  opción puede ser
   utilizada   como  argumento  de  línea  de  comandos  o  como  opción  de
   configuración (fichero de configuración).

 2.4 -> 2.4a:

 - Corregido  un  error  que causaba que los ficheros que no fuesen de texto
   fueran  capturados  a pesar de existir una versión capturada previamente:
   esto  desperdiciaba  ancho de banda innecesario.  Agradecer a Jon Wareham
   el que nos informase de este problema.

 2.3c -> 2.4:

 - Revisado  el código relacionado con la transferencia http:  ahora debería
   ser  más  tolerante  a  extrañas  respuestas  del servidor y facilitar la
   inclusión de mejoras en el futuro.

 - Modificado   el  comportamiento  del  programa  cuando  un  URL  contiene
   caracteres  inválidos  (no  admisibles  en nombres de ficheros AmigaDOS):
   cualquier carácter inválido será codificado como %xx donde xx es el valor
   hexadecimal  de  dicho  carácter.   Esta conversión es transparente tanto
   para  navegadores  como  servidores  ya  que es una forma de codificación
   estándar (el nombre codificado será utilizado en las referencias HTML, de
   forma  idéntica  a  como  si  fuese  el  propio  nombre de fichero).  Con
   anterioridad, se utilizaba una codificación CRC que era añadida al nombre
   de  fichero, lo que dificultaba determinar el nombre original del fichero
   (aseguraba   que  el  nombre  era  único,  pero  introducía  sus  propios
   problemas).

 - Cambiado  el  comportamiento  del programa cuando los nombres de ficheros
   superan  la  longitud  permitida  por  el  sistema de ficheros utilizado:
   ahora  simplemente  son  truncados  (en  el  caso  del FFS los nombres de
   ficheros  pueden  alcanzar  los  30 caracteres), conservándose el URL sin
   truncar en las referencias HTML.  Con anterioridad, el nombre del fichero
   era  truncado  y se añadía una codificación CRC.  Esta nueva aproximación
   podría provocar problemas (entre ficheros capturados de nombre idéntico),
   pero  se  espera  que  sean menores que la codificación CRC anteriormente
   utilizada  (tenga  en cuenta que esta codificación utilizada también para
   caracteres  ilegales  que  forman parte del nombre de los ficheros podían
   causar que éstos excediesen su longitud máxima y ser truncados).

 - Añadido  el  argumento de línea de comandos NOSAVE:  cuando se especifica
   previene que los ficheros capturados sean guardados.  Esta opción ha sido
   pedida  por  usuarios  que  utilizan  "tcpdl"  para  cebar  con  ficheros
   servidores  'proxy'  locales  (como por ejemplo httpproxy)...  si "tcpdl"
   guardase  en  este  caso  los  ficheros,  habría  dos  copias almacenadas
   localmente.

 - Añadido  el  argumento de línea de comandos DEBUG:  cuando se especifica,
   se  almacena  una copia de las peticiones HTTP en cada fichero de datos y
   los  ficheros  de  datos  de  transferencias  fallidas  se  guardan en el
   directorio TEMP.  Su utilidad es únicamente la investigación de problemas
   (no es para uso general).

 - Añadidos nuevos mensajes de estado:
     *BREAK*    - indica que la tarea ha recibido la señal CTRL-C.
     Not Found  - indica que el URL no ha sido encontrado en el servidor.
     SRVR ERROR - indica que el servidor ha informado de un error.

 - Antes,  algunos  de los ficheros temporales escritos en T:, podían causar
   problemas en situaciones de escasez de memoria:  ahora todos los ficheros
   son  ahora escritos en el directorio "tcpdldir:" de manera que el usuario
   tiene  control  sobre  la  localización  de  todos los ficheros generados
   (incluso temporalmente) por "tcpdl".

 - Corregida  la  visualización  actual  del  tamaño  real  (actual) y total
   (teórico)  de  los  ficheros:   previamente  eran mostrados sólo de forma
   intermitente.

 - Corregido  un pequeño error en la visualización de estado que causaba que
   las columnas no apareciesen correctamente alineadas.

 - Reducido ligeramente el consumo de memoria.

 - Corregido  un  error  que  dejaba  a  algunos  ficheros  bloqueados si se
   producía un error mientras se estaba recibiendo ficheros.

 2.3b -> 2.3c:

 - Añadido  el  argumento  de línea de comandos URL, que permite capturar un
   URL  especificado  desde  la  línea  de  comandos en lugar de utilizar el
   fichero UrlList.  Consulte en este mismo documento la sección "ARGUMENTOS
   ADMITIDOS DESDE LA LÍNEA DE COMANDOS (CLI)" para más detalles...

 - Añadido el argumento de línea de comandos CONFIG, que permite especificar
   el  fichero  de  configuración  a  utilizar.   Si  no  se  especifica, se
   utilizará por defecto como antes "tcpdldir:tcpdl.config".

 - Añadido  el argumento de línea de comandos TASKS, que permite especificar
   el  número  de tareas de captura (documentos simultáneos a capturar):  el
   rango válido oscila entre 1 y 15.

 - Añadida  la  opción de configuración TASKS.  Si está presente, este valor
   sirve  como número de tareas por defecto para capturar ficheros (el rango
   válido  está  comprendido  entre 1 y 15).  Este valor será ignorado si se
   utiliza el argumento de línea de comandos TASKS.

 - Añadida   la  opción  de  configuración  USERAGENT.   Si  está  presente,
   especifica  el nombre del cliente utilizado para capturar los documentos,
   información que le será enviada al servidor http.  Por defecto, el nombre
   es  de  la forma "tcpdl/<versión>", donde <versión> es la versión actual.
   Esta opción es útil para que "tcpdl" se haga pasar por otros programas en
   el   caso   de  servidores  (defectuosos)  que  sólo  aceptan  peticiones
   provenientes de determinados navegadores.

 - Reducido el número de procesos a 12,
   ya que 15 era demasiado para algunas máquinas.

 - Cambiado el manejo de argumentos
   de la línea de comandos para utilizar la sintaxis del AmigaDOS.

 2.3a -> 2.3b:

 - "tcpdl" enviaba comandos que a algunos servidores no les gustaban:  ahora
   debería  poder  tratar  con  servidores que utilicen cualquier versión de
   HTTP.

 - El  argumento  UPDATE (actualizar) no era correctamente propagado a todos
   los URL referenciados por los ficheros marcados con dicho argumento en la
   URLlist:   era  debido  a  un  fallo fundamental de diseño, y así ha sido
   eliminado  para  ser reemplazado por el argumento UPDATE a utilizar desde
   la  línea  de  comandos  (que  se  aplica a todos los URL incluidos en la
   URLlist).

 - El  argumento  IMG  no  hacía  lo  que  debía,  así que ha sido corregido
   ligeramente:
     * TEXT implica que todos los URL referenciados
       a través de un atributo "href" serán invocados.
     * IMG  implica que todos los URL referenciados
       a través de otro atributo que NO sea "href" serán invocados.
     * ALL  implica que todos los URL son invocados.

 - Añadida la opción de configuración USER que permite utilizar la dirección
   de  correo  electrónico  del  usuario con los comandos http:  por defecto
   "tcpdl"  utiliza  el nombre de usuario y nombre de servidor utilizado por
   la pila TCP/IP.  Si la opción USER está especificada sin una dirección de
   correo,  entonces  el  campo  'From:'  (remitente) de la cabecera no será
   enviado en los comandos HTTP.

 - "tcpdl"  usaba  el  nombre  del usuario para enviárselo al servidor http:
   ahora no es necesario, así que no se hace.

 - corregido el error DISK-ERR, que se veía incorrectamente.

 2.3 -> V2.3a:

 - es posible salir de "tcpdl" cuando
   se ha puesto en marcha desde el Workbench.

 - corregidas las alertas de Enforcer
   cuando la lista UrlList contenía una línea en blanco.

 2.2 -> V2.3:

 - Añadido soporte de servidores 'proxy'.

 - Añadidas opciones de configuración sobre la conexión y los tiempos
   límites de espera de transferencias http.

 - Añadida opción de configuración para
   el número de reintentos para transferencias fallidas.

 - "tcpdl"  ahora  utiliza  servicios  de  memoria  ('memory pools') para la
   reserva  de  ésta.   Esto  mejora  la  reserva ligeramente, pero tiene un
   efecto dramático a la hora de liberla y además reduce el riesgo de que la
   memoria no sea devuelta al sistema cuando "tcpdl" es interrumpido.

 - El nombre 'User Agent' ha sido modificado
   para cumplir con la norma RFC2068.

 - El fichero "tcpdl.config" ahora se cierra
   en cuanto ha sido leído.

 - La variable de entorno USERNAME se utiliza ahora
   si USER no está definida.

 - Cambiado  el  indicador de estado ERROR para que sea más específico sobre
   la causa de éste.

 2.1 -> 2.2:

 - Añadido fichero de configuración "tcpdl.config" para permitir
   especificar tipos de ficheros que NO deben ser capturados.

 2.0 -> 2.1:

 - Corregido problema cuando un URL del fichero UrlList no iba seguido de
   al menos un espacio o tabulador que debía ser ignorado.

 tcpdlpp
 -------

 1.3 -> 1.4:

 - Cambiado el manejo del URL que contenga barras inclinadas '/'.
   Cualquier URL de este tipo será convertido a su equivalente
   relativo, de manera que todos los enlaces locales
   deberían funcionar cuando se navega fuera de línea.

 1.2 -> 1.3:

 - Optimizaciones menores.

 1.1 -> 1.2:

 - Mejorado el manejo de ".." en un URL.

 - Añadida la conversión opcional de caracteres del URL, lo que significa
   que se traduce en un nuevo fichero de configuración
   llamado "tcpdldir:tcpdlpp.config".


                      UTILIZACIÓN DE TCPDL Y TCPDLPP
                      ==============================

                               INTRODUCCIÓN
                               ------------

 Tanto  "tcpdl" como "tcpdlpp" utilizan la unidad asignable "tcpdldir:" para
 referenciar cualquier directorio del área de trabajo que utilizan.

 El  fichero  UrlList,  que  contiene  la  lista  de  documentos (URL) a ser
 capturados,  debe  de  encontrarse  en  dicho  directorio "tcpdldir:".  Los
 ficheros  opcionales  de configuración "tcpdl.config" y "tcpdlpp.config" de
 existir deberán estar situados también en este directorio.

 Cuando  "tcpdl"  captura  los  documentos  indicados  (URL) se crearán tres
 directorios dependientes de "tcpdldir:" denominados TEMP, DATA y HTTP: a su
 vez  dependiente  de  éstos  se  creará  un  directorio por cada servidor y
 dependiente  de  estos se encontrarán los directorios y ficheros capturados
 (el  directorio  TEMP,  como  su  nombre  sugiere, es sólo para ficheros de
 trabajo temporales).

 El  directorio  HTTP  contiene  los  ficheros  actuales que son capturados,
 mientras  que  el  directorio  DATA  contiene  los  ficheros  que  retienen
 información de cada fichero capturado.

 Ejemplo:

 El  siguiente  árbol  de  directorios  muestra  la  estructura  que debería
 resultar  de programar las direcciones indicadas en los ejemplos utilizados
 en la sección « EL FICHERO "TCPDLDIR:urllist" »...

 tcpdldir:
    |
    |
    +------- urllist
    |
    +------- TEMP
    |         |
    |         |
    |        ...
    |
    +------- HTTP
    |         |
    |         |
    |         +------- www.ramjam.u-net.com
    |         |                  |
    |         |                  |
    |         |                  +------- index.html
    |         |                  |
    |         |                  |
    |         |                  +------- amiga
    |         |                  |          |
    |         |                  |          |
    |         |                 ...        ...
    |         |
    |         +------- www.amiga.com
    |         |                  |
    |         |                  |
    |         |                  +------- index.html
    |         |                  |
    |         |                  |
    |        ...                ...
    |
    +------- DATA
              |
              +------- www.ramjam.u-net.com
              |                  |
             ...                ...

 De  este  modo,  una  vez que un fichero ha sido capturado, aparecerá en un
 directorio que identifica al servidor del que proviene.

 El directorio DATA es utilizada por "tcpdl" durante la captura y el proceso
 de  actualización  de  documentos:   los  ficheros finales aparecerán en el
 directorio HTTP.

 El árbol de directorios HTTP/DATA será una copia de la estructura del árbol
 de  directorios dependiente del directorio HTTP actual, pero estos ficheros
 contendrán  en  lugar  de  los  datos  en sí, la respuesta del servidor que
 incluirá información para uso de "tcpdl":  esta información incluye fecha y
 hora  de  la  captura  (es usada cuando se utilice el argumento UPDATE para
 actualizar  los  ficheros),  y  en el caso de los ficheros html, también se
 incluye una lista de todos los enlaces (URL) referenciados.

 El  directorio TEMP contiene ficheros temporales *sólo* durante mientras se
 encuentre   "tcpdl"   en  ejecución,  a  menos  que  la  opción  DEBUG  sea
 especificada, en cuyo caso todos los ficheros temporales se conservarían al
 finalizar la ejecución de "tcpdl".

 Los   ficheros  HTML  capturados  con  "tcpdl"  incluirán  en  su  interior
 referencias  a  direcciones/documentos (URL) que serán reemplazados por una
 versión local, y así por ejemplo:

                   http://www.ramjam.u-net.com/home.html

 se convertiría en

       file://localhost/tcpdldir:http/www.ramjam.u-net.com/home.html

 El post-procesador, "tcpdlpp", procesa todos los ficheros disponibles en el
 directorio  "tcpdldir:http" convirtiendo todas las referencias de cualquier
 fichero  presente  en el URL relativo correspondiente y de los no presentes
 en su versión absoluta (URL completo).

 Esto  permite  navegar  fuera  de  línea  entre  los ficheros residentes en
 "tcpdldir:http",  permitiendo  también  el  acceso  a páginas remotas si el
 usuario  se  encuentra  en  línea.  Capturando sus páginas favoritas, podrá
 navegar  por  la maraña de páginas disponibles en la red de forma mucho más
 rápido,  siendo  capaz  de  seguir  cualquier enlace a otro lugar (ficheros
 remotos).

 Las  páginas capturadas deben de ser actualizadas periódicamente utilizando
 "tcpdl"  con  el  argumento  UPDATE,  y volviendo a ejecutar a continuación
 "tcpdlpp" para volver a adaptar las referencias modificadas.


                               PARA EMPEZAR
                               ------------

 1. Asigne "tcpdldir:" al directorio en el que quiera sean guardados los
    ficheros capturados (este directorio debe existir).
    Por ejemplo: "assign tcpdldir: work:tcpdldir"

 2. Edite el fichero "tcpdldir:urllist" para definir en él
    los ficheros a capturar.

 3. Edite el fichero "tcpdldir:tcpdl.config" si es necesario.

 4. Edite el fichero "tcpdlpp.config" si es necesario.

 5. Verifique que hay suficiente espacio libre en disco para
    las páginas (documentos) que desea capturar.

 6. Conéctese a Internet.

 7. Ejecute "tcpdl" desde una ventana Shell.

                 ********************************************
                      N. del T. - Si el programa falla,
                   pruebe a incrementar el valor de la pila.
                 ********************************************

 8. Si es necesario, ejecute "tcpdlpp"
    desde una ventana Shell (puede hacerlo fuera de línea).


 Si  al  verificar  los  resultados  de  "tcpdlpp"  existen gran cantidad de
 referencias  a  un  URL  que  no son locales, es posible que desee capturar
 dicho  URL.   Después  de  capturarlo, vuelva a ejecutar "tcpdlpp" para que
 todos  los  enlaces  que  antes  apuntaban a los documentos remoto ahora lo
 hagan a la versión capturada (local).


                         ARGUMENTOS ADMITIDOS DESDE
                         LA LÍNEA DE COMANDOS (CLI)
                         --------------------------

 "tcpdl" admite los siguientes argumentos...

 URL=<URL>

 Esta  opción  permite  especificar sólo una dirección (URL) o una dirección
 con  sus  opciones al estilo de cómo se hace en el fichero UrlList.  Si las
 opciones  se  especifican, entonces tanto el URL como las opciones deben ir
 encerradas entre comillas dobles como, por ejemplo,

                   tcpdl url=http://www.ramjam.u-net.com/

                tcpdl url="http//www.ramjam.u-net.com/ TEXT"

 URLLIST=<fichero>

 Esta  opción  permite  especificar  un  fichero  que  contenga una lista de
 documentos  (URL) a capturar:  si esta opción no se especifica se utilizará
 por defecto el fichero "tcpdldir:urllist".  Consulte la sección "EL FICHERO
 'TCPDLDIR:urllist'" para más detalles sobre el formato de este fichero.

 CONFIG=<fichero>

 Esta  opción  especifica  un fichero de configuración:  si no se especifica
 se  utilizará por defecto "tcpdldir:tcpdl.config".  Consulte la sección "EL
 FICHERO 'TCPDLDIR:tcpdl.config'" para más detalles sobre el formato de este
 fichero.

 TASKS=<número>

 Esta  opción  especifica  el número de documentos a recibir simultáneamente
 (un documento=una tarea), admitiendo valores comprendidos entre 1 y 15.  De
 utilizar  esta opción se ignora el comando TASKS especificado en el fichero
 "tcpdl.config".

 UPDATE

 La opción UPDATE indique que cualquier fichero capturado previamente deberá
 ser  comprobado  por  si ha sido actualizado con posterioridad:  si es así,
 volverá a ser capturada la versión actualizada.

 NOSAVE

 Esta  opción especifica que los ficheros capturados no deben ser guardados:
 esta  opción  es  útil  si  "tcpdl"  se  utiliza para cebar servidores http
 locales  (solicitar  documentos  para  que  se encuentren presentes en este
 servidor que funciona a modo de caché) o para probar los servidores http.

 NOWAIT

 La opción NOWAIT indica a "tcpdl" que no debe esperar a que se presione una
 tecla para terminar.  Esto facilita el uso del programa desde guiones.

 DEBUG

 Esta  opción  especifica que los ficheros dependientes de la jerarquía DATA
 deben  de  contener  una copia de la petición HTTP enviada al servidor, así
 como  de  cualquier  respuesta  u  otra  información habitual.  Esta opción
 también  desconecta  el  borrado  de ficheros  temporales  residentes en el
 directorio  TEMP  correspondientes  a transferencias fallidas.  Esta opción
 puede  ser  útil  para investigar la razón de transferencias que resultaron
 fallidas.

 PUBSCREEN=<nombre>

 Esta  opción  especifica  el  nombre de la pantalla pública sobre la que la
 ventana  de  estado de "tcpdl" debe ser abierta.  Por defecto, se utilizará
 la del Workbench.

 FONT=<nombre>

 Esta  opción especifica el nombre de la tipografía que la ventana de estado
 de "tcpdl" debe utilizar (tenga en cuenta que el sufijo ".font" no debe ser
 especificado  y que debería optarse por una tipografía monoespaciada puesto
 que  las proporcionales impiden el alineamiento correcto de las columnas de
 caracteres).

 FONTSIZE=<número>

 Esta opción especifica el tamaño de la tipografía que debe utilizarse en la
 ventana  de estado de "tcpdl" (el tamaño de la ventana se ajustará de forma
 adecuada).  Por defecto, se utiliza el valor 9 (si utiliza pantallas de muy
 alta resolución debería incrementar el tamaño de la tipografía).

 PRIORITY=<número>

 Esta opción especifica la prioridad máxima a utilizar con las tareas tcpdl.
 Las  prioridades  han  de  estar  comprendidas  entre  0 y 5 (ambos valores
 inclusive).   Por  defecto,  se  utilizará una prioridad de 2.  Utilizar un
 valor  0  puede  ser  útil  si  desea que "tcpdl" opere como tarea de fondo
 mientras utiliza un navegador o un cliente IRC.


                   VENTANA TCPDL DEL ESTADO DE LA TAREA
                   ------------------------------------

 La  ventana de estado de "tcpdl" es actualizada aproximadamente una vez por
 segundo  (tenga  en  cuenta  que  cada  cambio en el estado no tiene porqué
 quedar reflejado en la ventana).

 "tcpdl"  capturará  un número de ficheros simultáneamente, de manera que en
 la  ventana  de  estado  aparecerá una línea por cada tarea.  Los campos de
 cada línea son descritos a continuación:

 Status (Estado)

   Puede tomar uno de los siguientes valores:

     Connecting (Conectando)
       Intenta la conexión con el servidor.

     Sending (Enviando)
       Enviando petición.

     Header (Cabecera)
       Recibiendo cabecera.

     Updating (Actualizando)
       Petición  al  servidor utilizando la opción "If-Modified-Since" (sólo
       si  se  ha  modificado  desde la fecha indicada) o al cargar datos de
       "tcpdldir:data/".

     OK (Correcto)
       Fichero capturado con éxito.

     Receiving (Recibiendo)
       Recibiendo datos.

     Wait. html (Esperando HTML)
       El  programa  sólo procesa ficheros HTML en bloques de datos de hasta
       512  KB:   el  procesado  continuará  cuando  la  cantidad  de  datos
       pendientes de ser recibidos supere dicho límite.

     Proc. html (Procesando HTML)
       Procesando fichero HTML.

     Copying (Copiando)
       Copiando fichero HTML en "tcpdldir:http/".

     Not Found (No encontrado)
       El servidor informa de que
       el documento solicitado (URL) no es encontrado.

     LIB ERR (Error de biblioteca)
       Imposible abrir la biblioteca "bsdsocket.library".

     HOST ERR (Error de servidor)
       Servidor desconocido o inaccesible.

     SOCK ERR (Error de vía)
       Imposible abrir vía de conexión ('socket').

     CON ERR (Error de conexión)
       Imposible conectar con el servidor.

     HDR ERR (Error en cabecera)
       Se ha producido un error en la recepción de la cabecera.

     RECV ERR (Error en datos)
       Se ha producido un error recibiendo datos.

     FILE ERR (Error de fichero)
       Se ha producido un error al abrir el fichero de salida.

     SRVR ERR (Error en el servidor)
       El servidor ha informado de que se ha producido un error.

     DISK ERR (Error de disco)
       Se  ha  producido  un  error  en  la  escritura del fichero de salida
       (habitualmente se tratará de que no hay espacio libre en disco).

     ERROR
       Se ha producido algún error.

     *BREAK* (*INTERRUMPIDO*)
       La   tarea   ha   detectado   que   usuario   quiere  interrumpir  su
       funcionamiento  o  algún  error  ha abortado la ejecución de la tarea
       (por ejemplo porque el disco esté lleno).

 Time (Tiempo)

   Tiempo transcurrido desde el intento de conexión.

 CPS (Caracteres por segundo)

   La velocidad con que los datos capturados del fichero
   indicado son transferidos a nuestro equipo.

 CSize (Tamaño real)

   Tamaño actual de los datos recibidos.

 FSize (Tamaño teórico)

   Tamaño final de los datos
   (siempre que el servidor suministre la información).

 Request (Petición)

   El URL (documento) pedido.

 En  la  línea  superior  de  la  ventana  de estado también existen algunos
 indicadores de cómo progresa la tarea:

   (DONE:<n> TOTAL:<m>) - (HECHO: <n> TOTAL:<m>)
     <n> indica el número de ficheros ya capturados y
     <m> el número de fichero listados en memoria.

 La línea inferior de la ventana de estado también aporta alguna información
 adicional:

 Total time (Tiempo total)

   Tiempo transcurrido desde que comenzó la ejecución de "tcpdl".

 Total bytes (Bytes totales)

   Nº total de bytes recibidos.

 Average cps (CPS medio)

   Velocidad media, medida en caracteres por segundo, de la transferencia.


                                   NOTAS
                                   -----

 La  ejecución del programa puede ser finalizada presionando simultáneamente
 las teclas CTRL y C:  el programa terminará de forma segura tan rápido como
 sea posible (puede llevarle algo de tiempo si está procesando ficheros HTML
 de  gran  tamaño)...   eso  significa  que  cuando  todas  las tareas hayan
 recibido la señal Ctrl-C, el estado cambiará a "*BREAK*".

 Si  un servidor determinado no responde en más de cinco ocasiones, ya no se
 intentará   capturar   más   ficheros   de  dicho  servidor:   esto  impide
 desperdiciar tiempo en conexiones con servidores fuera de servicio.


                       EL FICHERO "TCPDLDIR:urllist"
                       -----------------------------

 El fichero "UrlList" deberá contener uno o más direcciones (URL) de las que
 capturar  documentos/ficheros.  Cada URL deberá comenzar en una nueva línea
 e  ir  seguido  opcionalmente  de  los argumentos apropiados, separados por
 espacios.

 Los argumentos soportados son:

 D1, D2, ...,  D19         Indica el número de niveles de documentos
                           text/html a capturar: POR DEFECTO
                           su valor es 255 (¡!).

 H0, H1, ...,  H5          Si otro servidor es referenciado a través
                           de HREF, este argumento define el nº máximo
                           de niveles admitido de referencias a capturar:
                           POR DEFECTO se utiliza H0, o lo que es lo
                           mismo, sólo se capturarán documentos
                           del servidor definido en UrlList
                           ignorando cualquier referencia a otro servidor.

 P0, P1, ...,  P5          Si el camino de acceso a los documentos es
                           diferente al especificado en UrlList, este
                           argumento define el número máximo de niveles:
                           POR DEFECTO se utiliza Pn, en donde 'n'
                           coincide con el valor definido para
                           el argumento Dn.

 TEXT                      Captura ficheros referenciados por
                           un atributo HREF: habitualmente serán
                           ficheros HTML (aunque no exclusivamente).

 IMG                       Captura ficheros que NO sean referenciados
                           por un atributo HREF: habitualmente serán
                           imágenes (aunque no exclusivamente).

 ALL                       Captura todo tipo de ficheros: es la opción
                           por defecto si no se añade los argumentos
                           IMG, TXT o ALL (tenga en cuenta que no se
                           capturarán los tipos de ficheros excluidos
                           a través de las líneas IGNORE definidas
                           en el fichero "tcpdl.config").

 por ejemplo

 http://www.amiga.com/index.html  D2 H3 TEXT

     se capturarán dos niveles de ficheros HTML referenciados por el fichero
     especificado  en el servidor indicado (www.amiga.com) y tres niveles de
     enlaces de cualquier otro servidor.

 http://www.ramjam.u-net.com/home.html D5 H0 ALL

     se  capturarán  cinco  niveles de ficheros referenciados por el fichero
     especificado en el servidor indicado (www.ramjam.u-net.com), pero si en
     alguno  de  los documentos capturados se referencian documentos de otro
     servidor será ignorado.

 http://www.ramjam.u-net.com/ TEXT

     se  capturarán  todos  los ficheros de texto referenciados a través del
     documento index.html del servidor www.ramjam.u-net.com.


                    EL FICHERO "TCPDLDIR:tcpdl.config"
                    ----------------------------------

 El  fichero  "tcpdl.config" es opcional:  si está presente, será leído para
 seguir  las  instrucciones  en  él incluidas (como por ejemplo qué tipos de
 ficheros capturar).  Las líneas que en dicho fichero comiencen (o sea, ésta
 aparezca  en la primera columna) por una almohadilla '#' serán consideradas
 comentarios  e ignoradas.  Los espacios en blanco serán también ignorados y
 en los comandos no se diferenciará entre mayúsculas y minúsculas.

 Actualmente se soportan los siguientes comandos:

 IGNORE <sufijo>

 ... en  donde  <sufijo> es el sufijo del nombre del tipo de ficheros que NO
 deben  capturarse.   Tenga  en  cuenta  que los ficheros indicados de forma
 explícita  en  el fichero UrlList serán capturados independientemente de lo
 indicado  con este comando (los referenciados a través de un documento HTML
 sin embargo si cumplirán las excepciones indicadas por este comando).

 Tenga  también  en  cuenta  que  <sufijo> puede contener cualquier carácter
 excepto  el  espacio  en blanco y que la cadena definida en este campo será
 utilizada  sólo  para  verificar  el  final  de  los nombre de los ficheros
 candidatos a ser capturados.

 PROXY <servidor 'proxy':puerto>

 Especifica  que todas las peticiones http deberán ser enviadas a través del
 servidor  especificado.   Si  el  número  de puerto es omitido, entonces se
 utilizará por defecto el nº 8080.

 Especificando  el  servidor  'proxy'  de  su  proveedor  puede  mejorar  la
 velocidad de recepción de forma significativa, especialmente con servidores
 http con gran demanda.

 Un  servidor  'proxy'  también  será  necesario para conexiones a través de
 cortafuegos ('firewall').

 CONTIMEOUT <segundos>

 Especifica  el  tiempo  límite  de  espera  inicial  para  cada conexión en
 segundos: el  valor  por defecto es 20 (rango admisible entre 10 y 600).

 HTTPTIMEOUT <segundos>

 Especifica  el tiempo límite de espera para cada petición http en segundos:
 por defecto su valor es 60 (rango admisible entre 10 y 600).

 RETRIES <número>

 Especifica  el número de intentos a realizar para captura cada fichero:  el
 valor por defecto es 5 (rango admisible entre 1 y 100).

 USER <dirección de correo>

 La  dirección  de  correo  del  usuario es enviada al servidor HTTP como la
 dirección  a  la que enviar si hay problemas con las peticiones de "tcpdl".
 Si la opción USER es especificada sin una dirección de correo, entonces las
 peticiones  HTTP no incluirán ninguna dirección, lo que puede servirle para
 mantener  su identidad en el anonimato.  Si la opción USER no está presente
 en  el  fichero de configuración, se utilizarán su identificador de usuario
 actual y el nombre de su servidor.

 TASKS <número>

 Permite  definir  el  número  de  documentos (URL) que se intentan capturar
 simultáneamente.   Si  esta  opción no está especificada, se utilizará como
 valor  por  defecto 12 (el rango de valores está comprendido entre 1 y 15):
 el  valor  aquí  indicado puede ser anulado si se utiliza desde la línea de
 comandos el argumento TASKS.

 USERAGENT <cadena>

 La  cadena  especifica el nombre del programa utilizado por el usuario para
 solicitar  los  documentos programados a  un servidor HTTP (entre el inicio
 de   dicha   cadena  y  el  comando  USERAGENT  pueden  existir  un  número
 indeterminado  de  espacios  en  blanco  que  no se considerarán como parte
 integrante  de  dicha  cadena).   Esta  opción  permite a "tcpdl" engañar a
 algunos servidores que (por estar mal configurados) sólo aceptan peticiones
 de ciertos navegadores.

 NOWAIT

 Permite  que "tcpdl" no espere a que el usuario presione la tecla Retorno ó
 <-| para terminar.  Esta opción es útil cuando se ejecuta el programa desde
 un guión.

 PUBSCREEN <nombre>

 Esta  opción  especifica  el  nombre de la pantalla pública sobre la que la
 ventana  de  estado  de  "tcpdl"  debe  ser abierta.  Esta opción puede ser
 ignorada si se utiliza el argumento PUBSCREEN desde la línea de comandos.

 FONT <nombre>

 Esta  opción especifica el nombre de la tipografía que la ventana de estado
 de "tcpdl" debe utilizar (tenga en cuenta que el sufijo ".font" no debe ser
 especificado  y que debería optarse por una tipografía monoespaciada puesto
 que  las proporcionales impiden el alineamiento correcto de las columnas de
 caracteres).   Esta  opción  puede  ser ignorada si se utiliza el argumento
 FONT desde la línea de comandos.

 FONTSIZE <valor>

 Esta opción especifica el tamaño de la tipografía que debe utilizarse en la
 ventana  de estado de "tcpdl" (el tamaño de la ventana se ajustará de forma
 adecuada).   Por  defecto,  se  utiliza  el valor 9.  Esta opción puede ser
 ignorada si se utiliza el argumento FONTSIZE desde la línea de comandos.

 PRIORITY <número>

 Esta opción especifica la prioridad máxima a utilizar con las tareas tcpdl.
 Las  prioridades  han  de  estar  comprendidas  entre  0 y 5 (ambos valores
 inclusive).   Por  defecto,  se  utilizará una prioridad de 2.  Esta opción
 puede  ser  ignorada  si se utiliza el argumento PRIORITY desde la línea de
 comandos.   Utilizar  un  valor 0 puede ser útil si desea que "tcpdl" opere
 como tarea de fondo mientras utiliza un navegador o un cliente IRC.

 Aquí tiene un ejemplo de fichero "tcpdl.config"...

 #
 # Define como servidor 'proxy' el de Demon Internet
 #
 PROXY www-cache.demon.co.uk:8080

 #
 # Especifica el tiempo límite (de espera)
 # Utilice valores pequeños si utiliza un servidor 'proxy'
 #
 CONTIMEOUT 10
 HTTPTIMEOUT 30

 #
 # Especifica el número de intentos por cada fichero
 #
 RETRIES 2

 #
 # Especifica que la dirección de correo NO debe ser enviada al servidor
 #
 USER

 #
 # Especifica el número de documentos a capturar simultáneamente
 # (esta opción es ignorada si se utiliza desde el CLI el argumento TASKS)
 TASKS 12

 #
 # Especifica la primiridad máxima para las tareas tcpdl
 #
 PRIORITY 2

 #
 # Especifica la tipografía, y el tamaño
 # de ésta, a utilizar en la ventana de estado
 #
 FONT Xen
 FONTSIZE 9

 #
 # Especifica los sufijos de los ficheros que NO deben ser capturados
 #

 # Ignorar paquetes LHA
 IGNORE .lha

 # Ignorar paquetes ZIP
 IGNORE .zip

 # Ignorar ficheros de sonido WAV
 IGNORE .wav

 # Ignorar ejecutables MS-DOS
 IGNORE .exe


                   EL FICHERO "TCPDLDIR:tcpdlpp.config"
                   ------------------------------------

 El  fichero  "tcpdlpp.config" es opcional:  si está presente, se utilizarán
 las conversiones de caracteres en él definidas a cada URL procesado.  Tenga
 en  cuenta  que los nombres de fichero actuales no son modificados...  sólo
 los URL referenciados en el interior de cada fichero HTML.

 Cada  línea de este fichero o regla consiste en un carácter literal que ser
 convertido  y  un  nuevo  carácter  literal  o  cadena  por el que debe ser
 reemplazado  el  primero.   Los caracteres deben ir encerrados por comillas
 simples (') y las cadenas por comillas dobles (").

 Los  huecos en blanco (espacios y tabuladores) son ignorados a menos que se
 encuentren  dentro  de  una  cadena.   Cualquier  línea en la que el primer
 carácter que no sea un hueco en blanco sea la almohadilla '#', será tratado
 como un comentario y por lo tanto será ignorada.

 Los siguientes caracteres de escape se permiten como caracteres literales o
 como parte de cadenas:

   \a    = señal sonora              ('bell')
   \b    = retroceso                 ('backspace')
   \f    = salto de página           ('formfeed')
   \n    = nueva línea               ('newline')
   \r    = retorno de carro          ('carriage return')
   \t    = tabulador horizontal      ('horizontal tab')
   \v    = tabulador vertical        ('vertical tab')
   \\    = barra invertida           ('backslash')
   \'    = comilla simple            ('single quote')
   \"    = comillas                  ('double quote')
   \nnn  = carácter definido a través de un valor octal nnn
   \xnnn = carácter definido a través con un valor hexadecimal nnn

 y  así  por  ejemplo  la  siguiente  línea  (regla)  convertirá  las barras
 invertidas  al  estilo  del MS-DOS utilizadas en caminos de acceso en barra
 inclinadas al estilo del AmigaDOS y Unix:

   '\\'  '/'

 y  la  siguiente regla convertirá la tilde (la virgulilla que utilizamos en
 la 'ñ') en la versión equivalente más segura "%xx":

   '~'  "%7E"

 Cada  carácter  es  convertido  utilizando  una  única regla (incluso si el
 resultado  final  incluye  un  carácter  que debería haber sido traducido a
 través de otra regla):  esto permite intercambiar dos caracteres entre sí.


                              LISTADO TCPDLPP
                              ---------------

 El  programa  "tcpdlpp"  procesa  a posteriori  los ficheros capturados por
 "tcpdl" (ambos utilizan la misma unidad asignable "tcpdldir:").

 Durante  su  ejecución  un  listado  es  mostrado  a  través  del  "stdout"
 (dispositivo  estándar  de  salida...   o  sea,  en  principio una ventana)
 constando dicho listado de tres secciones:

 - Una  lista  de  cada  fichero  que ha sido o no procesado:  como sólo los
   ficheros  HTML  contienen  direcciones URL actualizables, todos los demás
   ficheros  no  son procesados ('skipped').  Esta lista viene a servir como
   indicador de cómo evoluciona la tarea.

 - Una  lista de todos los ficheros locales (ficheros que ha capturado) y el
   nº de referencias (documentos invocados) que incluyen.  Cuando un fichero
   no  ha  sido  referenciado  (invocado  por ningún otro de los capturados)
   podría  ser por que se trata del fichero base de la página (index.htm por
   ejemplo):   así  que  si  está  construyendo una copia de sus páginas Web
   favoritas  para  navegar  por  ellas fuera de línea, con esta información
   puede  suprimir  aquellos  ficheros  no  utilizados,  con lo que ahorrará
   espacio de almacenamiento en su disco.

 - Una  lista  que incluye de todo aquel URL que no sea local.  Al igual que
   con los ficheros locales, el número asociado, señala el nº de referencias
   hechas  (veces  invocado desde otro documento):  en el caso de un URL con
   gran número de referencias, debería considerar su captura con "tcpdl".

 Cada vez que añada o elimine ficheros del directorio "tcpdldir:http", basta
 con  que  vuelva  a  ejecutar  "tcpdlpp"  para  reajustar  los  enlaces que
 correspondan.

 Todo  fichero  presente, pero cuyo URL haya sido modificado de alguna forma
 por  las  conversiones  definidas  en  el  fichero  "tcpdlpp.config", serán
 mostrados  como  no  locales  a  menos  que el nombre del fichero haya sido
 modificado  también.   Si tales ficheros son listados, entonces los nombres
 de  ficheros  deberían ser modificados, volviendo a ejecutar "tcpdlpp" para
 identificar esos ficheros como locales.


                                ADVERTENCIA
                                -----------

 Tenga  en cuenta, que salvo que se indique expresamente lo contrario, todos
 los ficheros disponibles en la WWW ('World Wide Web', también conocida como
 la  'Gran  Malla  Mundial',  como  algún  español la ha denominado), tienen
 autor  y/o  propietario ('copyright') que suele corresponder al dueño de la
 página visitada:  si su intención  es redistribuir *cualquier* fichero (por
 insignificante  que  sea)  de  los  disponibles  a  través de la WWW, ha de
 solicitar  previamente  el  permiso  correspondiente  de  quien ostenta los
 derechos de 'copyright'.

-----------------------------------------------------------------------------

                                        Traducción al español 1.2 (5.11.98)

 Este  documento  es  de  copiado  y  distribución  gratuíta no pudiendo ser
 modificado,  salvo directamente por el programador de la aplicación, que no
 podrá  delegar  esta postestad, o por el traductor original (o sea, yo :D).
 Su  utilización  es  siempre  bajo  la  responsabilidad  del propio usuario
 asumiendo éste todos los riesgos:  de hecho ni siquiera me hago responsable
 de  la  corrección  de  esta  traducción,  así  que  por favor, consulte la
 documentación original.

                Dámaso D. Estévez - Email: amidde@arrakis.es
    Traducciones y noticias en español - http://www.arrakis.es/~amidde/

-----------------------------------------------------------------------------
