使用python套接字从服务器向客户端发送命令

时间:2020-03-21 14:16:49

标签: python shell sockets reverse

我正在尝试使用python制作反向外壳。当我尝试从服务器向客户端发送命令时,出现以下错误:

文件“ client.py”第16行,在output_str = str UnicodeDecoderError;'utf-8'编解码器无法解码位置53的字节0 * 82:无效的起始字节

server.py:

class CoffeeMachine {
  #waterLimit = 200;

  #checkWater = value => {
    if (value < 0) throw new Error("Negative water");
    if (value > this.#waterLimit) throw new Error("Too much water");
  }
}

client.py:

import socket
import sys

def create_socket():
    try:
        global host
        global port
        global s
        host=""
        port=9999
        s = socket.socket()
    except socket.error as msg:
        print("socket creation error" +str(msg))


def bind_socket():
    try:
        global host
        global port
        global s
        print("binding the port" + str(port))
        s.bind((host,port))
        s.listen(5)

    except socket.error as msg:
        print("socket binding error"+str(msg)+"\n" + "Retrying ....")
        bind_socket()

def send_commands(conn):
    while True:
        cmd = input()
        if cmd == 'quit':
            conn.close()
            s.close()
            sys.exit()

        if len(str.encode(cmd)) > 0  :
            conn.send(str.encode(cmd))
            client_response = str(conn.recv(1024),"utf-8")
            print(client_response, end="")

def socket_accept():
            conn,address = s.accept()
            print("connection has been established" + "ip"+address[0]+"port" +str(address[1]))
            send_commands(conn)
            conn.close()


def main():
    create_socket()
    bind_socket()
    socket_accept()

main() 

0 个答案:

没有答案