Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import threading, socket, time, winsound
- print(" Welcome To NChatX ! A Simple Chat Application!\n")
- port = 5080
- connection = []
- username = str(input("Give Your Username >> "))
- print("")
- def listener():
- time.sleep(1)
- global username2
- while True:
- try:
- for con in connection:
- message = con.recv(1024)
- message = message.decode()
- print(">> {}: {}".format(username2,message))
- winsound.Beep(347,200)
- except:
- for con in connection:
- con.close()
- print("{} has left the chat!".format(username2))
- time.sleep(3)
- exit()
- def input_talk():
- time.sleep(1)
- global username2
- while True:
- try:
- ur_message = str(input("\n"))
- ur_message = ur_message.encode()
- for con in connection:
- con.send(ur_message)
- winsound.Beep(1000,200)
- except:
- pass
- def server():
- global username2
- print("\nBuilding Server For You...")
- sock = socket.socket()
- cp = socket.gethostname()
- sock.bind((cp,port))
- time.sleep(2)
- print("Built Server! Connection Key: {}".format(cp))
- print("\nWaiting For A Connection...\n")
- sock.listen(1)
- conn, addr = sock.accept()
- username_user = username.encode()
- conn.send(username_user)
- username2 = conn.recv(1024)
- username2 = username2.decode()
- connection.append(conn)
- print("{} has connected to the chat!\n------------------------------------------------------------------------\n".format(username2))
- t1 = threading.Thread(target = input_talk)
- t2 = threading.Thread(target = listener)
- t1.start()
- t2.start()
- def client():
- global username2
- s = socket.socket()
- username_user = username.encode()
- server_host = str(input("\nConnection Key: "))
- try:
- s.connect((server_host,port))
- username2 = s.recv(1024)
- s.send(username_user)
- username2 = username2.decode()
- connection.append(s)
- print("\nYou have connected to {}'s chat!\n------------------------------------------------------------------------\n".format(username2))
- t1 = threading.Thread(target = input_talk)
- t2 = threading.Thread(target = listener)
- t1.start()
- t2.start()
- except:
- print("\nConnection Key Failure\n")
- while True:
- opt = str(input(">> What Do You Want To Host As?[Client/Server]: "))
- if opt.lower() == "client":
- client()
- break
- elif opt.lower() == "server":
- server()
- break
- else:
- print("\tERROR "+options+" Is Not An Option\n")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement