• Почему код работает, только, если замедлять сервер до 5 кадров секунду?

    @Borjomy
    Можно попробовать перед посылкой сообщения отправлять его длину. И на стороне клиента и на стороне сервера. Тогда первым делом вычитывается длина, а далее вы вычитываете не 4096 (например), а конкретное число байт из сокета. И не будет задержек по таймауту. Когда сервер принимает первое сообщение от клиента, его длина ему неизвестна. Заказано 1024 байт, а приходит сколько? Сокет ждет, пока не вывалится по таймауту и только тогда отправляет в программу данные. Тут задержка. Когда ответ оправлен, сервер рвет соединение и сокет на клиенте понимает, что всё. Но тоже, вопрос быстродействия. Лучше все-таки оперировать известными размерами посылки.
    Ответ написан