Передача файла через сокет 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()

→ Ссылка