Задать вопрос
@vlad758

Как правильно передать большое байтовое значение через socket?

Как правильно передается длинная байтовая строка? Пытаюсь принять значения по 1024 байт в цикле - вылет.. Как это правильно делается?

Клиент:
def sock(self, send_vals):
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.connect((host.hostl, 8888))
        data = sock.send(send_vals.encode())
        result = sock.recv(1024)
        while result:
                result = sock.recv(1024)
        sock.close()
        return result


Сервер:
def handle(self):
        data_res = self.request.recv(1024)
        while data_res:
            data_res = self.request.recv(1024)
        data = json.loads(data_res.decode())
  • Вопрос задан
  • 260 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 1
gnifajio
@gnifajio
Совершенствуюсь каждый день
Чтобы передать байтовое значение через сокет в Python, вы можете использовать метод send() у объекта сокета. Например:
import socket

# Создаем сокет
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Соединяемся с удаленным хостом
sock.connect(('remote_host', 80))

# Передаем байтовое значение
data = b'Some binary data'
sock.send(data)

# Закрываем сокет
sock.close()

Обратите внимание, что send() может передать только ограниченное количество данных за раз, поэтому если вы хотите передать большое байтовое значение, вам может понадобиться использовать несколько вызовов send(), чтобы передать все данные. Например:

import socket

# Создаем сокет
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Соединяемся с удаленным хостом
sock.connect(('remote_host', 80))

# Передаем байтовое значение по частям
data = b'Some very large binary data'
chunk_size = 1024
for i in range(0, len(data), chunk_size):
    chunk = data[i:i+chunk_size]
    sock.send(chunk)

# Закрываем сокет
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
02 февр. 2025, в 12:33
3000 руб./за проект
02 февр. 2025, в 12:27
5000 руб./за проект
02 февр. 2025, в 11:35
3000 руб./за проект