Advertisement
Guest User

OL'PYTHON CHAT SERV

a guest
Jun 25th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.01 KB | None | 0 0
  1. from multiprocessing import Process
  2. import socket,time
  3.  
  4. def error_p(errmsg):
  5.     print("Error: "+errmsg)
  6.  
  7. def logmsg(logmsg):
  8.     a = time.strftime("%H-%M %d %h %Y")
  9.     print(a+": "+logmsg)
  10.  
  11. def read_ask_msg(data):
  12.    
  13.  
  14. def work_with_client(conn,addr):
  15.     msg = b""
  16.     data = conn.recv(8)
  17.     to_recieve = read_ask_msg(data)
  18.     try:
  19.         lmsgd = msg.decode("utf-8").split("|")
  20.         mtype = lmsgd[0]
  21.         nick = lmsgd[1]
  22.         message = lmsgd[2][:50]
  23.         if(len(nick)>10):
  24.             conn.send("BN".encode('utf-8'))
  25.             conn.close()
  26.             return
  27.         if(len(message)==0):
  28.             conn.send("BAD".encode("utf-8"))
  29.             conn.close()
  30.         if(mtype=="MSG"):
  31.             if(message in twords):
  32.                 message = work_cmds(message)
  33.                 nick = "Serv"
  34.             f = open("msgl","ab")
  35.             f.write((nick+": "+message+"\n").encode("utf-8"))
  36.             f.close()
  37.             conn.send("OK".encode("utf-8"))
  38.             conn.close()
  39.             logmsg(nick+": "+message)
  40.         if(mtype=="UPD"):
  41.             f = open("msgl","rb")
  42.             dat = f.read()
  43.             f.close()
  44.             rdat = dat.decode("utf-8").split("\n")
  45.             rdat = rdat[-10:]
  46.             odat = ("\n".join(rdat)+"|FIN").encode("utf-8")
  47.             msg_t = []
  48.             while(len(odat)>1024):
  49.                 msg_t.append(odat[:1024])
  50.                 odat=odat[1025:]
  51.             msg_t.append(odat)
  52.             for msgp in msg_t:
  53.                 conn.send(msgp)
  54.             conn.close()
  55.     except Exception as err:
  56.         print(err)
  57.         error_p("wrong message")
  58.         conn.send("BAD".encode("utf-8"))
  59.         conn.close()
  60.         return
  61.        
  62.        
  63.  
  64. if(__name__=="__main__"):
  65.     sock = socket.socket()
  66.     sock.bind(('192.168.1.4', 9090))
  67.     sock.listen(10)
  68.     while True:
  69.         conn, addr = sock.accept()
  70.         answ = Process(target=work_with_client,args=(conn,addr))
  71.         answ.start()
  72.         answ.join()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement