title: asyncio.sleep from within a UDP server not working
body: <p>I'm playing with <a href="https://docs.python.org/3.5/library/asyncio-protocol.html#udp-echo-server-protocol" rel="nofollow"><code>asyncio</code> UDP server example</a> and would like to have a <code>sleep</code> from within the <code>datagram_received</code> method.</p>
  
  <pre class="lang-python prettyprint-override"><code>import asyncio
  
  class EchoServerProtocol:
      def connection_made(self, transport):
          self.transport = transport
  
      def datagram_received(self, data, addr):
          message = data.decode()
          print('Received %r from %s' % (message, addr))
          # Sleep
          await asyncio.sleep(1)
          print('Send %r to %s' % (message, addr))
          self.transport.sendto(data, addr)
  
  loop = asyncio.get_event_loop()
  print("Starting UDP server")
  # One protocol instance will be created to serve all client requests
  listen = loop.create_datagram_endpoint(EchoServerProtocol,
                                         local_addr=('127.0.0.1', 9999))
  transport, protocol = loop.run_until_complete(listen)
  
  try:
      loop.run_forever()
  except KeyboardInterrupt:
      pass
  
  transport.close()
  loop.close()
  </code></pre>
  
  <p>This fails with a <code>SyntaxError</code> on the sleep line (Python 3.5.1). Using <code>time.sleep</code> is obviously not working as it prevents any other datagram to be received. Any hints on how to solve this?</p>
  
  <p>The goal is to replace this <code>sleep</code> with a real non-blocking I/O call.</p>