【发布时间】:2020-08-03 23:49:06
【问题描述】:
我正在尝试使用套接字制作远程外壳。一些命令的工作方式类似于netstat 或dir。但是当我尝试使用ping 时,会出现以下错误消息:
- UnicodeDecodeError:“utf-8”编解码器无法解码位置 18 中的字节 0x81:无效的起始字节
如果我尝试将消息编码为 utf-8,则此问题仅发生在服务器端。使用普通的字节字符串可以正常工作。我也尝试过先接收再编码字符串。
服务器端:
while True:
cmd = input(">>>")
if len(str.encode(cmd)) > 0:
connection.send(str.encode(cmd))
client_response = str(connection.recv(1024), encoding = "utf-8")
print (client_response, end = "")
客户端:
while True:
data = sock.recv(1024).decode("utf-8")
proc = subprocess.Popen(shlex.split(data),
shell = True,
stdin = subprocess.PIPE,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE)
output = proc.stdout.read()+proc.stderr.read()
sock.send(output)
也许有人可以给我小费。
【问题讨论】:
标签: python network-programming