Advertisement
Yonka2019

server_side.py

Apr 12th, 2021
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.42 KB | None | 0 0
  1. import socket
  2. import random
  3. import datetime
  4.  
  5. LISTEN_PORT = 420
  6. LISTEN_HOST = "localhost"
  7.  
  8. STOP_MESSAGE = "QUIT"
  9. SERVER_NAME_MESSAGE = "Some cool name"
  10. WELCOME_MESSAGE = ("Select from the menu:\n" +
  11.                    "TIME - Get current local time\n" +
  12.                    "NAME - Get server name\n" +
  13.                    "RAND - Get random number between 1 to 10\n" +
  14.                    "QUIT - Close the socket")
  15.  
  16.  
  17. def main():
  18.     client_msg = ""
  19.     listen_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  20.     listen_sock.bind((LISTEN_HOST, LISTEN_PORT))
  21.     listen_sock.listen(1)
  22.  
  23.     print("Listening " + LISTEN_HOST + ':' + str(LISTEN_PORT))
  24.  
  25.     client_sock, client_address = listen_sock.accept()  # CONNECTED
  26.  
  27.     client_sock.sendall(WELCOME_MESSAGE.encode())
  28.  
  29.     while client_msg != STOP_MESSAGE:
  30.         client_msg = client_sock.recv(4).decode()  # RECEIVED MESSAGE
  31.         print("RECEIVED: " + client_msg)
  32.  
  33.         client_sock.sendall(str(do(client_msg)).encode())  # SENT MESSAGE
  34.  
  35.     client_sock.close()
  36.     listen_sock.close()
  37.  
  38.  
  39. def do(selected):
  40.     if selected == "TIME":
  41.         return datetime.datetime.now()
  42.     elif selected == "NAME":
  43.         return SERVER_NAME_MESSAGE
  44.     elif selected == "RAND":
  45.         return random.randint(1, 11)
  46.     elif selected == "QUIT":
  47.         return "Socket Closed."
  48.     else:
  49.         return WELCOME_MESSAGE
  50.  
  51.  
  52. if __name__ == '__main__':
  53.     main()
  54.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement