Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import socket
- import threading
- import string
- import sys
- import time
- HOST = '127.0.0.1' #'nonpottdsever.ddns.net' 127.0.0.1
- PORT = 62435
- versions_c = [0, 0]
- kind = '.exe'
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- mode = 'text: '
- data = b''
- data_rec = b''
- def decode(data):
- letters = string.ascii_letters + string.digits + string.punctuation
- decode_str = ''
- data_n = data.split('#')
- data = []
- for data_z in data_n[:-1]:
- data.append(float(data_z))
- i = 0
- for data_z in data:
- ascii_ = data_z * 2
- decode_str += letters[int(ascii_)]
- i += 1
- decode_str = decode_str.replace('-ou-', 'u')
- decode_str = decode_str.split('@')
- return decode_str
- def encode(data_e):
- letters = string.ascii_letters + string.digits + string.punctuation
- encode_str = ''
- data_e = data_e.replace(' ', '@')
- len_ = data_e.__len__()
- for data_st in range(len_):
- i = -1
- while data_e[data_st] != letters[i]:
- i += 1
- if data_e[data_st] == letters[i]:
- encode_str += str(i / 2) + '#'
- data_st += 1
- return encode_str
- def send(message):
- if message == str():
- sock.send(bytes(encode(message), 'utf-8'))
- if message == bytes():
- sock.send(bytes(encode(str(message, 'utf-8')), 'utf-8'))
- else:
- sock.send(bytes(encode(str(message)), 'utf-8'))
- def handler():
- while True:
- input_user = input("")
- send(mode+input_user)
- if input_user == 'exit##':
- break
- def main_loop():
- while True:
- data_rec = sock.recv(1024)
- try:
- data_rec = decode(str(data_rec, 'utf-8'))
- except Exception as e:
- data_rec = ['error', '']
- print(e)
- if data_rec == 'EXIT-CLIENT':
- break
- print('>{}'.format(data_rec[0], '>>', data_rec[1:]))
- mode = data_rec[0]
- # TODO request_handler(data_rec_new)
- if __name__ == '__main__':
- try:
- i = 3
- while True:
- name = input("name:")
- pas = input("password:")
- sock.connect((HOST, PORT))
- sock.sendall(bytes(encode('text: ' + name + ' ' + encode(pas)), 'utf-8'))
- data = decode(str(sock.recv(1024), 'utf-8'))
- if data[1] == 'logged-Hi':
- print(data)
- version = decode(str(sock.recv(1024), 'utf-8'))
- if version == str(versions_c):
- print('you are up to date')
- else:
- print('update')# TODO update
- cThread = threading.Thread(target=handler)
- cThread.daemon = True
- cThread.start()
- main_loop()
- else:
- print(data)
- version = decode(str(sock.recv(1024), 'utf-8'))
- if version == str(versions_c):
- print('you are up to date')
- else:
- print('update')# TODO update
- print('{} more tries'.format(i))
- i -= 1
- if i <= 0:
- print('tried too often')
- input("exit")
- sys.exit()
- except Exception as e:
- print('Server down or no connection', e)
- input('exit')
- sys.exit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement