Advertisement
Guest User

CLIENT

a guest
Jun 25th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.68 KB | None | 0 0
  1. import socket,tkinter
  2. addr = "5.35.15.21"
  3. port = 9090
  4. bads = ["BN","BAD"]
  5. chist = ""
  6. def send_msg(nick,msg):
  7.     sock = socket.socket()
  8.     sock.connect((addr, port))
  9.     msgo = ('MSG|'+nick+"|"+msg+"|FIN")
  10.     msgo = msgo.encode("utf-8")
  11.     msg_t = []
  12.     while(len(msgo)>1024):
  13.         msg_t.append(msgo[:1024])
  14.         msgo=msgo[1025:]
  15.     msg_t.append(msgo)
  16.     for msgp in msg_t:
  17.         sock.send(msgp)
  18.     answ = sock.recv(1024)
  19.     sock.close()
  20.  
  21. def ask_upd(nick):
  22.     sock = socket.socket()
  23.     sock.connect((addr, port))
  24.     sock.send(("UPD|"+nick+"|ask|FIN").encode('utf-8'))
  25.     adat = b""
  26.     while True:
  27.         dat = sock.recv(1024)
  28.         if(not dat)or(dat.decode('utf-8')[-3:]=="FIN"):
  29.             adat+=dat
  30.             break
  31.         if(dat.decode("utf-8") in bads):
  32.             return bad_proc(dat.decode("utf-8"))
  33.         adat+=dat
  34.     return(adat.decode("utf-8"))
  35.  
  36. def bad_proc(answ):
  37.     print(answ)
  38.     return("")
  39.  
  40. def upd_mlog():
  41.     mlog.after(1000,upd_mlog)
  42.     try:
  43.         d = ask_upd(nick).split("|")[0].split("\n")
  44.     except Exception as err:
  45.         print(err)
  46.         mw.destroy()
  47.         exit()
  48.     d.reverse()
  49.     mlog.delete('1.0',tkinter.END)
  50.     n = 1
  51.     for i in d:
  52.         mlog.insert(float(n),i+"\n")
  53.         n+=1
  54.  
  55. def smsg(*args):
  56.     msg = minp.get()
  57.     minp.delete(0,tkinter.END)
  58.     send_msg(nick,msg)
  59.  
  60. nick = "ПИПИСИКС"
  61. mw = tkinter.Tk()
  62. mlog = tkinter.Text(mw,height=10,width=80,font="Arial 14")
  63. mlog.pack()
  64. minp = tkinter.Entry(mw)
  65. minp.pack()
  66. sbtn = tkinter.Button(mw,text="Send",command=smsg)
  67. sbtn.pack()
  68. minp.bind("<Return>",smsg)
  69. mlog.after(1000,upd_mlog)
  70. mw.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement