Пытаюсь понять это поведение, но документация не сильно помогла. Я написал код ниже. если я установлю sh соединение с портом и затем введу слово hello
, меня встретит hey there!
- однако, если я впоследствии наберу hello world для этого соединения, ничего не произойдет - я ожидал, что код будет вызывается снова, когда поступают новые данные, поэтому, если я снова отправлю hello
, то поведение будет повторяться (ie. write hey there
)
import asyncio
class Service():
def __init__(self, port = 18247):
self.port = port
async def serve(self):
srv = await asyncio.start_server(self.handle_client, '0.0.0.0', self.port)
await srv.serve_forever()
async def handle_client(self, reader, writer):
result = await reader.readline()
result = result.decode('utf-8')
if result.startswith('hello'):
writer.write(str.encode('hey there!'))
def main():
srv = Service()
asyncio.run(srv.serve())
if __name__ == '__main__':
main()