import socket client = socket.socket() client.setblocking(False) client.connect(('www.baidu.com', 80)) #阻塞 三次握手 # 想办法获取socket的状态,连接成功之后才往下走 client.send(b'GET / http1\r\nhost:www.baidu.com\r\n\r\n') # 想办法获取socket状态,是否数据返回了 response = client.recv(8096) #阻塞 print(response) client.close()
import socket client = socket.socket() client.setblocking(False) try: client.connect(('www.baidu.com', 80)) #阻塞 三次握手 except BlockingIOError as e pass # 想办法获取socket的状态,连接成功之后才往下走 client.send(b'GET / http1\r\nhost:www.baidu.com\r\n\r\n') # 想办法获取socket状态,是否数据返回了 response = client.recv(8096) #阻塞 print(response) client.close()
import socket client1 = socket.socket() client1.setblocking(False) try: client1.connect(('www.baidu.com', 80)) #阻塞 三次握手 except BlockingIOError as e pass client2 = socket.socket() client2.setblocking(False) try: client2.connect(('www.bing.com', 80)) #阻塞 三次握手 except BlockingIOError as e pass client3 = socket.socket() client3.setblocking(False) try: client3.connect(('www.cnblogs.com', 80)) #阻塞 三次握手 except BlockingIOError as e pass # 检测以上三个socket是否连接成功,谁成功就给谁发信息 client1.send('GET / http1.1\r\nhost:www.baidu.com\r\n\r\n'
非阻塞的好处?减少等待时间