import asyncio
from soyokaze import Client, Message, Method, Port, Server, URL
async def greet(request):
name = (request.target or "/").lstrip("/") or "World"
return Message.text(f"Hello, {name}!", request.version)
async def main():
server = Server()
handle = await server.serve(greet, [Port.TCP(0)])
client = Client()
connection = await client.open(URL(f"http://127.0.0.1:{handle.port}/"))
for target in ["/", "/soyokaze"]:
response = await client.request(connection, Message.request(Method.GET, target, connection.version))
print(f"{target} -> {response.status_code} {(await response.body()).decode()}")
await connection.close()
await handle.close(5)
if __name__ == "__main__":
asyncio.run(main())