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?
ну...сокеты для подключения, асинкио для управления выполнением функций
Ответь за счёт чего работает асинкио
Ух, тут ещё и декодируется невероо
можете подсказать где именно и как верно?
Ты не проверяешь что принял буквы целиком, а вызываешь декод
Обсуждают сегодня