Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sys import argv
- from dataclasses import dataclass
- from socket import *
- from threading import Thread
- import json
- SOCKET_BUFFER_SIZE = 1024
- @dataclass
- class Server:
- vhost: str
- ip: str
- port: int
- documentroot: str
- def parse_config_file(path):
- servers = []
- log_file = ""
- with open(path) as json_file:
- data = json.load(json_file)
- log_file = data['log']
- for server in data['server']:
- servers.append(Server(server['vhost'], server['ip'], server['port'], server['documentroot']))
- return servers, log_file
- def serve_client(_socket, address, keepAliveTime):
- print("AAAAAAAAAAAAAA-----------------------------------------------------------------------------")
- _socket.settimeout(keepAliveTime)
- print("Set timeout")
- request = _socket.recv(SOCKET_BUFFER_SIZE).decode('utf-8')
- print(request)
- print("------------------------------------------------------------------------------------------")
- # response = str(int() * 2).encode('utf-8')
- # _socket.sendall(response)
- _socket.close()
- def main():
- if len(argv) > 2 or len(argv) < 2:
- print("Wrong amount of arguments")
- servers, log_file = parse_config_file(argv[1])
- curr_server = servers[0]
- print("Current server: ", curr_server)
- server_socket = socket(AF_INET, SOCK_STREAM)
- print(curr_server.ip, curr_server.port)
- server_socket.bind((curr_server.ip, curr_server.port))
- server_socket.listen()
- print("Server listening")
- # while True:
- _socket, client_address = server_socket.accept()
- print("New connection: {}".format(client_address))
- print("HEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRRRRRRREEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE")
- tmp_thread = Thread(target=serve_client, args=(_socket, client_address, 5))
- tmp_thread.start()
- print("Worker started")
- server_socket.close()
- print("Closed")
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement