connect_poll.py 748 B

1234567891011121314151617181920212223242526272829303132
  1. # test that socket.connect() has correct polling behaviour before, during and after
  2. try:
  3. import usocket as socket, uselect as select
  4. except:
  5. import socket, select
  6. def test(peer_addr):
  7. s = socket.socket()
  8. poller = select.poll()
  9. poller.register(s)
  10. # test poll before connect
  11. # note: CPython can return POLLHUP, so use the IN|OUT mask
  12. p = poller.poll(0)
  13. print(len(p), p[0][-1] & (select.POLLIN | select.POLLOUT))
  14. s.connect(peer_addr)
  15. # test poll during connection
  16. print(len(poller.poll(0)))
  17. # test poll after connection is established
  18. p = poller.poll(1000)
  19. print(len(p), p[0][-1])
  20. s.close()
  21. if __name__ == "__main__":
  22. test(socket.getaddrinfo('micropython.org', 80)[0][-1])