#!/usr/bin/env python3 import asyncio import socket async def connect(): global loop, sock sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.setblocking(False) await loop.sock_connect(sock, ("sdf.org", 22)) def disconnect(): global loop, sock sock.shutdown(socket.SHUT_RDWR) sock.close() sock = None async def main(): global loop, sock await connect() fut = loop.sock_recv(sock, 5) disconnect() await connect() await fut disconnect() sock = None loop = asyncio.get_event_loop() loop.run_until_complete(main()) loop.close()