forked from adafruit/circuitpython
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconnect_poll.py
More file actions
32 lines (22 loc) · 748 Bytes
/
connect_poll.py
File metadata and controls
32 lines (22 loc) · 748 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# test that socket.connect() has correct polling behaviour before, during and after
try:
import usocket as socket, uselect as select
except:
import socket, select
def test(peer_addr):
s = socket.socket()
poller = select.poll()
poller.register(s)
# test poll before connect
# note: CPython can return POLLHUP, so use the IN|OUT mask
p = poller.poll(0)
print(len(p), p[0][-1] & (select.POLLIN | select.POLLOUT))
s.connect(peer_addr)
# test poll during connection
print(len(poller.poll(0)))
# test poll after connection is established
p = poller.poll(1000)
print(len(p), p[0][-1])
s.close()
if __name__ == "__main__":
test(socket.getaddrinfo('micropython.org', 80)[0][-1])