Advertisement
Guest User

Untitled

a guest
May 26th, 2018
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. """client."""
  2. from socket import *
  3. from threading import *
  4. import tkinter
  5.  
  6.  
  7.  
  8. def push_data(event=None):
  9.  
  10. New_msg = MY_New_msg.get()
  11. MY_New_msg.set("")
  12. client_socket.push_data(bytes(New_msg, "utf8"))
  13. if New_msg == "{exit}":
  14. client_socket.close()
  15. tkinter_GUI.quit()
  16.  
  17.  
  18. def get_data():
  19. while True:
  20. try:
  21. New_msg = client_socket.recv(BUFSIZ).decode("utf8")
  22. New_msg_list.insert(tkinter.END, New_msg)
  23. except OSError:
  24. break
  25.  
  26.  
  27. def when_close(event=None):
  28.  
  29. MY_New_msg.set("{exit}")
  30. push_data()
  31.  
  32.  
  33. tkinter_GUI = tkinter.Tk()
  34. tkinter_GUI.title("CS201")
  35.  
  36. messages_frame = tkinter.Frame(tkinter_GUI)
  37. MY_New_msg = tkinter.StringVar()
  38. MY_New_msg.set("Name")
  39. scrollbar = tkinter.Scrollbar(messages_frame)
  40.  
  41. New_msg_list = tkinter.Listbox(messages_frame, height=15, width=50, yscrollcommand=scrollbar.set)
  42. scrollbar.pack(side=tkinter.RIGHT, fill=tkinter.Y)
  43. New_msg_list.pack(side=tkinter.LEFT, fill=tkinter.BOTH)
  44. New_msg_list.pack()
  45. messages_frame.pack()
  46.  
  47. entry_field = tkinter.Entry(tkinter_GUI, textvariable=MY_New_msg)
  48. entry_field.bind("<Return>", push_data)
  49. entry_field.pack()
  50. push_data_button = tkinter.Button(tkinter_GUI, text="push_data", command=push_data)
  51. push_data_button.pack()
  52. tkinter_GUI.protocol("WM_DELETE_WINDOW", when_close)
  53.  
  54. HOST = input('Enter host: ')
  55. PORT = input('Enter port: ')
  56. if not PORT:
  57. PORT = 33000
  58. else:
  59. PORT = int(PORT)
  60. BUFSIZ = 1024
  61. ADDR = (HOST, PORT)
  62. client_socket = socket(AF_INET, SOCK_STREAM)
  63. client_socket.connect(ADDR)
  64.  
  65. get_data_thread = Thread(target=get_data)
  66. get_data_thread.start()
  67. tkinter.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement