Advertisement
Guest User

Untitled

a guest
May 14th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.38 KB | None | 0 0
  1. import socket
  2. import threading
  3. import string
  4. import sys
  5. import time
  6. HOST = '127.0.0.1' #'nonpottdsever.ddns.net' 127.0.0.1
  7. PORT = 62435
  8. versions_c = [0, 0]
  9. kind = '.exe'
  10. sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  11. mode = 'text: '
  12. data = b''
  13. data_rec = b''
  14.  
  15.  
  16. def decode(data):
  17.     letters = string.ascii_letters + string.digits + string.punctuation
  18.     decode_str = ''
  19.     data_n = data.split('#')
  20.     data = []
  21.     for data_z in data_n[:-1]:
  22.         data.append(float(data_z))
  23.     i = 0
  24.     for data_z in data:
  25.         ascii_ = data_z * 2
  26.         decode_str += letters[int(ascii_)]
  27.         i += 1
  28.     decode_str = decode_str.replace('-ou-', 'u')
  29.     decode_str = decode_str.split('@')
  30.     return decode_str
  31.  
  32.  
  33. def encode(data_e):
  34.     letters = string.ascii_letters + string.digits + string.punctuation
  35.     encode_str = ''
  36.     data_e = data_e.replace(' ', '@')
  37.     len_ = data_e.__len__()
  38.     for data_st in range(len_):
  39.         i = -1
  40.         while data_e[data_st] != letters[i]:
  41.             i += 1
  42.             if data_e[data_st] == letters[i]:
  43.                 encode_str += str(i / 2) + '#'
  44.         data_st += 1
  45.     return encode_str
  46.  
  47.  
  48. def send(message):
  49.     if message == str():
  50.         sock.send(bytes(encode(message), 'utf-8'))
  51.     if message == bytes():
  52.         sock.send(bytes(encode(str(message, 'utf-8')), 'utf-8'))
  53.     else:
  54.         sock.send(bytes(encode(str(message)), 'utf-8'))
  55.  
  56.  
  57. def handler():
  58.     while True:
  59.         input_user = input("")
  60.         send(mode+input_user)
  61.         if input_user == 'exit##':
  62.             break
  63.  
  64.  
  65. def main_loop():
  66.     while True:
  67.         data_rec = sock.recv(1024)
  68.         try:
  69.             data_rec = decode(str(data_rec, 'utf-8'))
  70.         except Exception as e:
  71.             data_rec = ['error', '']
  72.             print(e)
  73.         if data_rec == 'EXIT-CLIENT':
  74.             break
  75.         print('>{}'.format(data_rec[0], '>>', data_rec[1:]))
  76.         mode = data_rec[0]
  77.         # TODO request_handler(data_rec_new)
  78.  
  79.  
  80. if __name__ == '__main__':
  81.     try:
  82.         i = 3
  83.         while True:
  84.             name = input("name:")
  85.             pas = input("password:")
  86.             sock.connect((HOST, PORT))
  87.             sock.sendall(bytes(encode('text: ' + name + ' ' + encode(pas)), 'utf-8'))
  88.             data = decode(str(sock.recv(1024), 'utf-8'))
  89.             if data[1] == 'logged-Hi':
  90.                 print(data)
  91.                 version = decode(str(sock.recv(1024), 'utf-8'))
  92.                 if version == str(versions_c):
  93.                     print('you are up to date')
  94.                 else:
  95.                     print('update')# TODO update
  96.                 cThread = threading.Thread(target=handler)
  97.                 cThread.daemon = True
  98.                 cThread.start()
  99.                 main_loop()
  100.             else:
  101.                 print(data)
  102.                 version = decode(str(sock.recv(1024), 'utf-8'))
  103.                 if version == str(versions_c):
  104.                     print('you are up to date')
  105.                 else:
  106.                     print('update')# TODO update
  107.                 print('{} more tries'.format(i))
  108.                 i -= 1
  109.                 if i <= 0:
  110.                     print('tried too often')
  111.                     input("exit")
  112.                     sys.exit()
  113.  
  114.     except Exception as e:
  115.         print('Server down or no connection', e)
  116.         input('exit')
  117.         sys.exit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement