qq相片制作,全套美女化妆,金佰滋
多个socket是否已经发生变化,(是否已经连接成功/是否已经获得数据)(可读/可写)
实现:
代码如下:
import socket import select client1 = socket.socket() client1.setblocking(false) # 将原本链接阻塞,修改为非阻塞 # 百度创建链接,阻塞 try: client1.connect(('www.baidu.com',80)) except blockingioerror: pass client2 = socket.socket() client2.setblocking(false) # 将原本链接阻塞,修改为不阻塞 # 百度创建链接,阻塞 try: client2.connect(('www.sogou.com',80)) except blockingioerror: pass client3 = socket.socket() client3.setblocking(false) # 将原本链接阻塞,修改为不阻塞 # 百度创建链接,阻塞 try: client3.connect(('www.oldboyedu.com',80)) except blockingioerror: pass socket_list = [client1,client2,client3] conn_list = [client1,client2,client3] while true: rlist,wlist,elist = select.select(socket_list,conn_list,[],0.005) for sk in wlist: if sk == client1: sk.sendall(b'get /s?wd=alex http/1.0\r\nhost:www.baidu.com\r\n\r\n') elif sk == client2: sk.sendall(b'get /web?query=alex http/1.0\r\nhost:www.sogou.com\r\n\r\n') else: sk.sendall(b'get /s?wd=alex http/1.0\r\nhost:www.oldboyedu.com\r\n\r\n') conn_list.remove(sk) for sk in rlist: chunk_list = [] while true: try: chunk = sk.recv(8096) if not chunk: break chunk_list.append(chunk) except blockingioerror: break boby = b''.join(chunk_list) print('------->',boby) sk.close() socket_list.remove(sk) if not socket_list: break
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
新手学习Python2和Python3中print不同的用法
Python基于os.environ从windows获取环境变量
网友评论