170 похожих чатов

Здравствуйте! Пытаюсь написать сервер - клиент чат с socket and

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())

6 ответов

23 просмотра

А как ты собрался юзать обычный socket с asyncio?

Radington- Автор вопроса
Tishka17
А как ты собрался юзать обычный socket с asyncio?

ну...сокеты для подключения, асинкио для управления выполнением функций

Ух, тут ещё и декодируется невероо

Radington- Автор вопроса
Tishka17
Ух, тут ещё и декодируется невероо

можете подсказать где именно и как верно?

Radington
можете подсказать где именно и как верно?

Ты не проверяешь что принял буквы целиком, а вызываешь декод

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта