Как вы можете отправить команду для отображения списка файлов в каталоге через сокет?
#
# Write a script that connects to 'localhost' port 10000
# You then need to send a command to list the files in the /tmp directory
#
import socket, os, json
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(("localhost", 10000))
cmd = json.dumps(os.listdir("/tmp"))
sock.send(cmd.encode())
print(sock.recv(1024).decode())
Это не дает мне абсолютно никакого результата! Что дает?
sock.send(cmd)
.cmd
должен быть объектом bytes.os.listdir
возвращает список строк. Сначала вы должны объединить список. Затем конвертируйте его в байты. Попробуйтеsock.send('\n'.join(cmd).encode('utf8'))
- person F Trias   schedule 21.04.2020AttributeError: 'list' object has no attribute 'encode'
. - person Ollie   schedule 21.04.2020b'/tmp'
. Возможно, вам удастся уйти сsock.send(b'\n'.join(cmd))
. - person F Trias   schedule 21.04.2020sock.recv(1024)
, он просто говоритb''
. - person Ollie   schedule 21.04.2020