Программа устанавливает командную строку внутри окна Windows, которую затем может использовать окно Linux для выполнения команд Windows. Поэтому, когда у меня открыт cmd в linux, и я набираю dir, чтобы посмотреть, какие файлы находятся на машине с Windows, я запускаю исключение:
Блок try завершается неудачно и возвращает строку исключения. Если я делаю печать, чтобы увидеть, что такое raw_command: «встроенная функция dir»
while "\n" not in cmd_buffer:
received_bytes=client_socket.recv(1024)
cmd_buffer += received_bytes.decode()
response = run_command(cmd_buffer)
client_socket.send(str.encode(response))
#____run the command output locally and send it back to the client____
def run_command(command):
raw_command = command.rstrip('\n')
try:
output = subprocess.check_output(raw_command, stderr=subprocess.STDOUT, shell=True)
except:
output = "Command failed \r\n"
return output