/TP1-Intro-A5

TP 1 de Introducción a Sistemas Distribuidos - Grupo A5

Primary LanguagePython

TP1-Intro-A5

TP 1 de Introducción a Sistemas Distribuidos - Grupo A5

Integrantes

Dependencias

Antes de ejecutar el programa, es necesario contar con la biblioteca que habilita la visualización de la barra de progreso.

$ pip install alive_progress

Ejecución del programa

Servidor

El server acepta los siguientes flags:

  • -H para indicar la IP en la que escuchará conexiones.
  • -p para indicar el puerto en el que escuchará conexiones.
  • -s para indicar el directorio en el que se guardarán los archivos.
  • -v para indicar que se desea que el servidor imprima por pantalla los eventos que ocurren.
  • -q para indicar que se desea que el servidor no imprima por pantalla los eventos que ocurren. (Por defecto)
  • -r para indicar que el protocolo de transferencia sea Selective Repeat, de lo contrario será Stop and Wait.

Ejemplo de ejecución usando Selective Repeat:

$ python3 -m start_server -r -v -H 127.0.0.1 -p 6000 -s "./server_files/"

Puede correrse ese mismo comando de la forma make server_sr

Ejemplo de ejecución usando Stop and Wait:

$ python3 -m start_server -v -H 127.0.0.1 -p 6000 -s "./server_files/"

Puede correrse ese mismo comando de la forma make server_sw

Cliente

Upload

El cliente para modo upload acepta los siguientes flags:

  • -H para indicar la IP del servidor al que se conectará.
  • -p para indicar el puerto del servidor al que se conectará.
  • -s para indicar el archivo que se desea subir.
  • -n para indicar el nombre con el que se guardará el archivo en el servidor.
  • -v para indicar que se desea que el cliente imprima por pantalla los eventos que ocurren.
  • -q para indicar que se desea que el cliente no imprima por pantalla los eventos que ocurren. (Por defecto)
  • -r para indicar que el protocolo de transferencia sea Selective Repeat, de lo contrario será Stop and Wait.

Ejemplo de ejecución usando Selective Repeat:

$ python3 -m uploader -r -v -H 127.0.0.1 -p 6000 -s $(p) -n $(n)

Puede correrse ese mismo comando de la forma make upload_sr p="archivo_a_subir" n="nombre_archivo_servidor"

Ejemplo de ejecución usando Stop and Wait:

$ python3 -m uploader -v -H 127.0.0.1 -p 6000 -s $(p) -n $(n)

Puede correrse ese mismo comando de la forma make upload_sw p="archivo_a_subir" n="nombre_archivo_servidor"

Download

El cliente para modo download acepta los siguientes flags:

  • -H para indicar la IP del servidor al que se conectará.
  • -p para indicar el puerto del servidor al que se conectará.
  • -n para indicar el nombre del archivo que se desea descargar.
  • -d para indicar el path en el que se guardará el archivo descargado.
  • -v para indicar que se desea que el cliente imprima por pantalla los eventos que ocurren.
  • -q para indicar que se desea que el cliente no imprima por pantalla los eventos que ocurren. (Por defecto)
  • -r para indicar que el protocolo de transferencia sea Selective Repeat, de lo contrario será Stop and Wait.

Ejemplo de ejecución usando Selective Repeat:

$ python3 -m downloader -r -v -H 127.0.0.1 -p 6000 -d $(p) -n $(n)

Puede correrse ese mismo comando de la forma make download_sr p="archivo_a_descargar" n="nombre_archivo_servidor"

Ejemplo de ejecución usando Stop and Wait:

$ python3 -m downloader -v -H 127.0.0.1 -p 6000 -d $(p) -n $(n)

Puede correrse ese mismo comando de la forma make download_sw p="archivo_a_descargar" n="nombre_archivo_servidor"

List

El cliente para modo list acepta los siguientes flags:

  • -H para indicar la IP del servidor al que se conectará.
  • -p para indicar el puerto del servidor al que se conectará.

Ejemplo de ejecución:

$ python3 -m client_ls -H 127.0.0.1 -p 6000

Puede correrse ese mismo comando de la forma make ls