2
asyncioを使って簡単なエコーサーバを実装しようとしています。asyncioを使って簡単なエコーサーバを実装する
import asyncio
async def process(reader, writer):
while True:
data = await reader.readline()
writer.write(data)
loop = asyncio.get_event_loop()
listener = asyncio.start_server(process, host=None, port=2500)
loop.run_until_complete(listener)
loop.run_forever()
これはサーバーを起動するので、複数のクライアントから接続できます。また、クライアントにメッセージが返されます。問題は、クライアントの1つを閉じると、エコーメッセージが他の接続されたクライアントにも表示されなくなることです。なぜそれが起こり、どうすればそれを防ぐことができますか?接続が閉じられたときにループが終了されていないため
ありがとうございました。私はすべてのネットワーキングコードにこのコードを書いています。初めてasyncioを実行して、それを忘れてしまいました。 – Ravi