nnikolyaa
@nnikolyaa

Как отправить по сокетам данных больше, чем 1024?

У меня есть текст размером >1024б
Я хочу его отправить по сокетам, но трабл в том что он обрезается ровно на 1024
Я пытался найти как это исправить, и наткнулся на кучу вариантов. Не получилось.
Сокеты именно не получали, а ничего не отправляли. Как исправить?
Клиент
command_output = "{'command':'"+command+"','user':'"+nick+"','token':'"+token.decode('utf8')+"'}"
connection.send(command_output.encode("utf8"))
command_answear = connection.recv(1024)
print(command_answear.decode('utf8'))


Сервер
incoming_data_str = str(connection.recv(1024).decode('utf8'))


Я пытался сделать через
incoming_data_str = ''
while True:
	incoming_data_str += str(connection.recv(1024).decode('utf8'))
	if not incoming_data_str: break

но он тупа молчал.
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
nnikolyaa
@nnikolyaa Автор вопроса
Короче, проблема была в том что не отравлялось никакой инфы в конце на if not data
Решил я её просто добавя в конец сообщения текст "END$OF$TEXT" и чека его по прибытию if "END$OF$TEXT" in data: break

Сервер часть
def tell(text):
	text += " END$OF$TEXT"
	connection.send(text.encode('utf8'))
text = "Super mega huge text!"
tell(text)


Клиент часть
command_answear = ''
while True:
	command_answear += connection.recv(1024).decode("utf8")
	if "END$OF$TEXT" in command_answear:
		break
print(command_answear[0:-11])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы