Я работаю над чат-комнатой TCP с использованием модуля сокетов, и я ищу надежный способ получения данных (только текст), обеспечивающий доставку всего сообщения, например WhatsApp (сообщения всегда принимаются). Приведенные ниже сценарии представляют собой фрагменты файлов сервера и клиента существующей комнаты чата, которые я нашел, которые решают представленную проблему в соответствии с протоколом:
#SERVER FILE
header = 64
format = "utf-8"
def get_messages(client):
connected = True
while connected:
msg_length = client.recv(header).decode(format)
if msg_length:
msg_length = int(msg_length)
msg = client.recv(msg_length).decode(format)
Теперь клиентский файл:
header = 64
format = "utf-8"
def send_message(msg):
message = msg.encode(format)
msg_length = len(message)
send_length = str(msg_length).encode(format)
send_length += b' ' * (header - len(send_length))
client.send(send_length)
client.send(message)
message = str("Hello World")
send_message(message)
Насколько надежен и безопасен этот протокол?