Я пытаюсь написать функцию, которую можно использовать повторно для надежного получения любого количества данных tcp.
Обратите внимание, это предполагает, что соединение уже установлено - где conn
- это моеподключенный сокет.
Пока у меня есть следующее:
import socket
def recv_tcp_data(conn, byte_size):
chunks = []
while True:
data = conn.recv(byte_size)
if data:
chunks.append(data)
else:
break
return chunks as result
Проблема с приведенным выше кодом заключается в том, что я не хочу возвращать список данных, которые имеютбыл получен.Я хочу вернуть все как одну закодированную строку независимо от количества буферов, но я не могу понять, как объединить список закодированных строк chunks
.
Например, я хочу иметь возможностьдля непосредственного запуска .decode("utf-8")
на выходе функции, без необходимости манипулирования выходом функции вне функции.
РЕДАКТИРОВАТЬ: Чтобы уточнить - я пытаюсь создать функцию для получения буфера (ов)закодированных данных, а затем вернуть те буферы (буферы) как один закодированный result
, который может быть декодирован с помощью result.decode("utf-8")
вне функции.
EDIT2: Дополнительные пояснения - Я в основном ищу.join()
, работающий со списком байтов.