что и оригинал бы подошёл.
3. По идее этот код не должен паниковать, т.к. созданный поток слипнут на 10 секунд. Но он в теории может, если бы исполнение доходило до второго вызова send, на котором ресивер дропнут и некуда отправлять. Обычно проблему с сендерами, переживающими ресиверов, элегантно не обработать, кроме как упасть или прекратить отправку (то есть надо не анврапать, а матчить результат).
1. Длинные? Мне пока так проще, я только начинаю в программирование 😱 2. Клон действительно не нужен, это пережитки предыдущей версии кода, спасибо - вычищу. 3. Ну, в основной поток вставлять loop - это = убить программу. Ищу в инете, как подобные задачи решить - пока не вижу других решений, кроме как запустить еще один доп. поток и в нем заloop-ить recv()
https://doc.rust-lang.org/rust-by-example/flow_control/while_let.html как вариант заверни recv в while let
Необязательно loop в main, он нужен, только если необходимо все отправленные сообщения забрать из буфера и завершиться наконец-то, и только если сообщения приходят медленнее
Обсуждают сегодня