asyncio. Не получается нормальной работы + не знаю как сделать постоянное обновление приходящих сообщений. Кто может подсказать? 
                  
                  
                  
                  
                  
                  
                  
                  
                  !!!!! Замечу сразу, что просто пробую написать подобное (первый раз пишу с использованием того что знаю) , так что корутины и переменные названы не так как правильно, а как мне удобнее!!!!!!!!!!!!
                  
                  
                  
                  
                  
                  
                  
                  
                  Вот код сервера:
                  
                  
                  
                  
                  
                  import socket
                  
                  
                  import asyncio
                  
                  
                  
                  
                  
                  
                  
                  
                  async def main():
                  
                  
                  
                  
                  
                      with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server:
                  
                  
                          server.bind(("127.0.0.1", 5050))
                  
                  
                          server.listen(1)
                  
                  
                          client_sock, add = server.accept()
                  
                  
                  
                  
                  
                          async def send():
                  
                  
                              while True:
                  
                  
                                  client_sock.send(("Server: " + input("я говорю: ")).encode("utf-8"))
                  
                  
                                  await asyncio.sleep(0)
                  
                  
                  
                  
                  
                          async def get():
                  
                  
                              while True:
                  
                  
                                  msg = client_sock.recv(4048).decode("utf-8")
                  
                  
                                  print(f"{add}: {msg}")
                  
                  
                                  await asyncio.sleep(0)
                  
                  
                  
                  
                  
                          task_1 = asyncio.create_task(send())
                  
                  
                          task_2 = asyncio.create_task(get())
                  
                  
                  
                  
                  
                          await task_1
                  
                  
                          await task_2
                  
                  
                  
                  
                  
                  asyncio.run(main())
                  
                  
                  
                  
                  
                  —————————————Вот код клиента————————————
                  
                  
                  
                  
                  
                  import socket
                  
                  
                  import asyncio
                  
                  
                  
                  
                  
                  
                  
                  
                  async def main():
                  
                  
                      with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client:
                  
                  
                          client.connect(('127.0.0.1', 5050))
                  
                  
                  
                  
                  
                          async def send():
                  
                  
                              while True:
                  
                  
                                  client.send(input("я говорю: ").encode("utf-8"))
                  
                  
                                  await asyncio.sleep(0)
                  
                  
                  
                  
                  
                          async def get():
                  
                  
                              while True:
                  
                  
                                  msg = client.recv(4048).decode("utf-8")
                  
                  
                                  print(msg)
                  
                  
                                  await asyncio.sleep(0)
                  
                  
                  
                  
                  
                          task_1 = asyncio.create_task(get())
                  
                  
                          task_2 = asyncio.create_task(send())
                  
                  
                  
                  
                  
                          await task_1
                  
                  
                          await task_2
                  
                  
                  
                  
                  
                  
                  
                  
                  asyncio.run(main())
                  
                  
                
А как ты собрался юзать обычный socket с asyncio?
ну...сокеты для подключения, асинкио для управления выполнением функций
Ответь за счёт чего работает асинкио
Ух, тут ещё и декодируется невероо
можете подсказать где именно и как верно?
Ты не проверяешь что принял буквы целиком, а вызываешь декод
Обсуждают сегодня