Skip to content
Snippets Groups Projects
server.py 1.56 KiB
import socket
import sys
from common import *

# def CONSTANT
SERVER_PORT = 10000 # default
MSG = "Welcome to the server"

class Server():

    def __init__(self, port=10000, filepath="input"):
        self.SERVER_PORT = port
        self.FILE_PATH = filepath
        self.clients = []

        self.init_socket()
        self.listen()
        for client in self.clients :
            self.handshake(client)
            self.send_file(client)
            self.close_con(client)

    def init_socket(self):
        self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

    def send(self, data, client_addr):
        self.socket.sendto(data, client_addr)

    def recv(self):
        return self.socket.recvfrom(SEG_SIZE)

    def listen(self):
        self.socket.bind((HOST_NAME, BROADCAST_PORT))
        log("!", f"Server listening on broadcast address\n")

        while True:
            message, address = self.recv()
            log("!", f"Client {address} found")
            self.send(bytes(), address) # <-- To-change
            self.clients.append(address)

            log("?", "Listen more? (y/n) ", end="")
            choice = input()
            if choice == "n":
                break

    def handshake(self, client_addr):
        # To-DO
        return

    def send_file(self, client_addr):
        # To-Do
        return

    def close_con(self, client_addr):
        # To-Do
        return 

if __name__=="__main__":
    try:
        Server(port=sys.argv[1]);
    except:
        Server();