message = 'Hello World!'
transport, protocol = await loop.create_connection(
- lambda: EchoClientProtocol(message, on_con_lost, loop),
+ lambda: EchoClientProtocol(message, on_con_lost),
'127.0.0.1', 8888)
# Wait until the protocol signals that the connection
class EchoClientProtocol:
def __init__(self, message, on_con_lost):
self.message = message
- self.transport = None
self.on_con_lost = on_con_lost
+ self.transport = None
def connection_made(self, transport):
self.transport = transport
class MyProtocol(asyncio.Protocol):
- def __init__(self, loop):
+ def __init__(self, on_con_lost):
self.transport = None
- self.on_con_lost = loop.create_future()
+ self.on_con_lost = on_con_lost
def connection_made(self, transport):
self.transport = transport
# Get a reference to the event loop as we plan to use
# low-level APIs.
loop = asyncio.get_running_loop()
+ on_con_lost = loop.create_future()
# Create a pair of connected sockets
rsock, wsock = socket.socketpair()
# Register the socket to wait for data.
transport, protocol = await loop.create_connection(
- lambda: MyProtocol(loop), sock=rsock)
+ lambda: MyProtocol(on_con_lost), sock=rsock)
# Simulate the reception of data from the network.
loop.call_soon(wsock.send, 'abc'.encode())