import socket import os import pynput from pynput.keyboard import Key, Controller #press keyboard=Controller() # device's IP address SERVER_HOST = "127.0.0.1" #(socket.gethostbyname(socket.gethostname())) SERVER_PORT = 10001 # receive 4096 bytes each time BUFFER_SIZE = 128 SEPARATOR = "" # create the server socket # TCP socket s = socket.socket() # bind the socket to our local address s.bind((SERVER_HOST, SERVER_PORT)) # enabling our server to accept connections # 5 here is the number of unaccepted connections that # the system will allow before refusing new connections s.listen(5) print(f"[*] Listening as {SERVER_HOST}:{SERVER_PORT}") # accept connection if there is any client_socket, address = s.accept() # if below code is executed, that means the sender is connected print(f"[+] {address} is connected.") # receive the file infos # receive using client socket, not server socket received = client_socket.recv(BUFFER_SIZE).decode() filename, filesize = received.split(SEPARATOR) # remove absolute path if there is filename = os.path.basename(filename) # convert to integer filesize = int(filesize) # start receiving the file from the socket # and writing to the file stream #with open(filename, "wb") as f: def pressRrelease_char(char): keyboard.press(char) while True: # read 1024 bytes from the socket (receive) bytes_read = client_socket.recv(BUFFER_SIZE) if not bytes_read: # nothing is received # file transmitting is done take another time break # write to the file the bytes we just received f = open(filename, 'wb') f.write(bytes_read) # update the progress bar f.close() g = open(filename, 'r') ge = g.read() print (ge) try: if (ge == "Key.enter"): pressRrelease_char(Key.enter) elif (ge == "Key.shift"): pressRrelease_char(Key.shift) elif (ge == "Key.space"): pressRrelease_char(Key.space) elif (ge == "Key.backspace"): pressRrelease_char(Key.backspace) elif (ge == "Key.ctrl_r"): pressRrelease_char(Key.ctrl_r) elif (ge == "Key.ctrl_l"): pressRrelease_char(Key.ctrl_l) elif (ge == "Key.shift_r"): pressRrelease_char(Key.shift_r) elif (ge == "Key.alt_l"): pressRrelease_char(Key.alt_l) elif (ge == "Key.alt_r"): pressRrelease_char(Key.alt_r) elif (ge == "Key.cmd"): pressRrelease_char(Key.cmd) elif (ge == "Key.caps_lock"): pressRrelease_char(Key.caps_lock) elif (ge == "Key.tab"): pressRrelease_char(Key.tab) elif (ge == "Key.f1"): pressRrelease_char(Key.f1) elif (ge == "Key.f2"): pressRrelease_char(Key.f2) elif (ge == "Key.f3"): pressRrelease_char(Key.f3) elif (ge == "Key.f4"): pressRrelease_char(Key.f4) elif (ge == "Key.f5"): pressRrelease_char(Key.f5) elif (ge == "Key.f6"): pressRrelease_char(Key.f6) elif (ge == "Key.f7"): pressRrelease_char(Key.f7) elif (ge == "Key.f8"): pressRrelease_char(Key.f8) elif (ge == "Key.f9"): pressRrelease_char(Key.f9) elif (ge == "Key.f10"): pressRrelease_char(Key.f10) elif (ge == "Key.f11"): pressRrelease_char(Key.f11) elif (ge == "Key.f12"): pressRrelease_char(Key.f12) elif (ge == "Key.esc"): pressRrelease_char(Key.esc) elif (ge == "Key.insert"): pressRrelease_char(Key.insert) elif (ge == "Key.delete"): pressRrelease_char(Key.delete) elif (ge == "Key.end"): pressRrelease_char(Key.end) elif (ge == "Key.num_lock"): pressRrelease_char(Key.num_lock) elif (ge == "Key.home"): pressRrelease_char(Key.home) elif (ge == "Key.page_up"): pressRrelease_char(Key.page_up) elif (ge == "Key.page_down"): pressRrelease_char(Key.page_down) elif (ge == "Key.pause"): pressRrelease_char(Key.pause) elif (ge == "Key.scroll_lock"): pressRrelease_char(Key.scroll_lock) elif (ge == "Key.menu"): pressRrelease_char(Key.menu) elif (ge == "Key.print_screen"): pressRrelease_char(Key.print_screen) elif (ge == "Key.left"): pressRrelease_char(Key.left) elif (ge == "Key.up"): pressRrelease_char(Key.up) elif (ge == "Key.right"): pressRrelease_char(Key.right) elif (ge == "Key.down"): pressRrelease_char(Key.down) else: pressRrelease_char((ge)) except: print("an error occured with ", ge) g.close() # close the client socket #client_socket.close() # close the server socket #s.close()