Untitled
unknown
plain_text
4 years ago
2.2 kB
11
Indexable
# encoding: utf-8
# Revisión 2019 (a Python 3 y base64): Pablo Ventura
# Copyright 2014 Carlos Bederián
# $Id: connection.py 455 2011-05-01 00:32:09Z carlos $
import os
import socket
import datatime
from constants import *
from base64 import b64encode
def get_file_listing():
"""
Devuelve una lista de archivos del directorio compartido.
"""
files = os.listdir(DEFAULT_DIR)
files.sort()
return files
def get_metadata(filename):
"""
Devuelve los metadatos del archivo filename.
"""
size = os.path.getsize(os.path.join(DEFAULT_DIR, filename))
return size
def get_slice(filename, offset, size):
"""
Ni idea mi rey
"""
return none
class Connection(object):
"""
Conexión punto a punto entre el servidor y un cliente.
Se encarga de satisfacer los pedidos del cliente hasta
que termina la conexión.
"""
def __init__(self, socket, directory):
# FALTA: Inicializar atributos de Connection
self.s = socket
self.dir = directory
dir = os.path("directory")
if not os.path.exists(dir):
os.mkdir(dir)
def handle(self, data):
# FALTA: Manejar la conexión entrante
# FALTA: Leer y procesar los pedidos del cliente
# FALTA: Enviar respuestas al cliente
# FALTA: Cerrar la conexión
x = datatime.now()
# Procesa el pedido del cliente
request_str = request.decode("uft-8")
#Parseamos
request_str = request_str.split(" ")
#Obtenemos el comando
command = request_str[0]
if(command == "get_file_listing"):
get_file_listing()
elif(command == "get_metadata"):
get_metadata(FILENAME)
elif(command == "get_slice"):
get_slice(FILENAME, OFFSET, SIZE)
elif(command == "quit"):
quit()
else:
print("Invalid command")
# Enviamos la respuesta al cliente
response = response.encode("utf-8")
self.s.send(response)
# Cerramos la conexión
self.s.close()
Editor is loading...