Ao manter um soquete do cliente aberto para enviar várias mensagens, por que o programa comete um erro quando há um grande atraso nas mensagens?

Existe um servidor que escuta conexões. O soquete do cliente se conecta ao servidor e chamasendall() várias vezes em um loop antes de fechá-lo. No entanto, se alguma iteração demorar um pouco, haverá umConnectionAbortedError.

Existe um loop que vai de 0 a 9, onde em todas as iterações há umsendall() usando o soquete do cliente. Para criar um atraso, adicionei um loop fictício while que apenas incrementa alguma variáve

A parte relevante do código do servidor

with socket.socket() as s:
    s.bind(('127.0.0.1', 65432))
    s.listen()

    while True:
        connection, address = s.accept()

        with connection:
            data = connection.recv(72)
            print('Client says "{}"'.format(data))

O código do cliente

with socket.socket() as s:
    s.connect((host, port))
    for i in range(10):
        s.sendall(bytes("message {}".format(i+1), encoding='utf-8'))

        if i+1 == 3:
            count = 0
            while count < 12000:
                count += 1

Um pequeno limite para contar nowhile loop como 500 funciona bem. No entanto, algo acima de 5000 parece causar um erro. Não está claro para mim por que eles dão resultados diferente

questionAnswers(2)

yourAnswerToTheQuestion