Передача файла через сокет python
Требуется передать фаил с одного docker контейнера linux на другой. На каждом контейнере открыть по веб сокету, с их помощью и передать заранее созданный файл. Вот код клиента:
import socket
# Создание архива
create = open('archive.txt', 'w')
create.close()
# Создаем сокет
sock = socket.socket()
# Связываем сокет с портом 1234
sock.connect(('localhost', 1234))
# Открываем архив
file = open('archive.txt', 'rb')
# Цикл отправки
while (data):
# Считываем архив
data= file.read(1024)
# Если данные кончились - выходим
if not data:
exit()
# Отправка данных
sock.send(data)
file.close()
sock.close
Вот код сервера:
import socket
# Создаем сокет
sock = socket.socket()
# Связываем сокет с портом 1234
sock.bind(('', 1234))
# Запускаем режим прослушивания
sock.listen(1)
#
conn, addr = sock.accept
# Принимаем данные
while True:
data = conn.recv(1024)
if not data:
break
conn.send(data.upper())
# Закрываем соединение
conn.close()
При выполнении кода выходит исключение:
Attaching to compose_server_1, compose_client_1
server_1 | Traceback (most recent call last):
server_1 | File "/server/./server.py", line 10, in <module>
server_1 | conn, addr = sock.accept
server_1 | TypeError: cannot unpack non-iterable method object
Что не так делаю?
Ответы (1 шт):
Автор решения: Pokrov
→ Ссылка
Нашел ошибку. Не добавил скобки в 10 строке conn, addr = sock.accept()