Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. from tkinter.scrolledtext import ScrolledText
  2. from tkinter import *
  3. from time import sleep
  4. import socket
  5. import threading
  6. import sys
  7.  
  8. PORT = 52000
  9. SERVER_IP = "localhost"
  10.  
  11. class Gui:
  12. def __init__(self, master):
  13. self.master = master
  14. master.title("Client")
  15. master.geometry("600x750")
  16.  
  17. self.chat = ScrolledText(self.master, state = "disabled", width = 72)
  18. self.chat.grid(padx = 4, pady = 4, columnspan = 2)
  19.  
  20. self.chat_entry = ScrolledText(self.master, width = 55, height = 3)
  21. self.chat_entry.grid(row = 1, padx = 4, pady = 4)
  22.  
  23. self.send_button = Button(self.master, text = "Send", width = 10, height = 2)
  24. self.send_button.grid(row = 1, column = 1, padx = 4, pady = 4)
  25.  
  26. class Client(Gui):
  27. def __init__(self, master, ip, port):
  28. Gui.__init__(self, master)
  29. master.protocol("WM_DELETE_WINDOW", self.stop)
  30. self.chat_entry.bind("<Return>", self.enter)
  31. self.chat.bind("<1>", lambda e:self.chat.focus)
  32. self.send_button.configure(command = self.enter)
  33.  
  34. self.server_ip = ip
  35. self.port = port
  36.  
  37. # self.s = socket.socket()
  38. #
  39. # try:
  40. # self.s.connect((self.server_ip, self.port))
  41. # except ConnectionRefusedError:
  42. # error = "Can't connect to server on %s:%s!"%(self.server_ip,self.port)
  43. # self.chat_add(error)
  44. # sys.exit()
  45.  
  46. self.listening = threading.Thread(target=self.listen)
  47. self.listening.daemon = True
  48. self.listening.start()
  49.  
  50. def stop(self):
  51. # self.s.shutdown(1)
  52. # self.s.close()
  53. self.master.destroy()
  54.  
  55. def enter(self,*args):
  56. message = self.chat_entry.get(1.0,"end-1c")
  57. if message != "":
  58. message = message.encode("utf-8", "replace")
  59. self.s.send(message)
  60. self.master.after(0,lambda: self.chat_entry.delete(1.0, END))
  61.  
  62. def chat_add(self, text):
  63. text = str(text)
  64. text += "\n"
  65. self.chat.configure(state = "normal")
  66. self.chat.insert(END, text)
  67. self.chat.yview(END)
  68. self.chat.configure(state = "disabled")
  69.  
  70. def listen(self):
  71. while True:
  72. for i in range(10):
  73. sleep(2.0)
  74. self.master.after(1, self.chat_add, "Test data")
  75. self.master.after(1, self.chat_add, "disconnected!")
  76. break
  77. # try:
  78. # sleep(1.0)
  79. # data = self.s.recv(2048).decode("utf-8", "replace")
  80. # self.chat_add(data)
  81. # except Exception as e:
  82. # print(e)
  83. # self.chat_add("Server disconnected!")
  84. # break
  85.  
  86. root = Tk()
  87. app = Client(root, SERVER_IP, PORT)
  88. root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement