首页 > 其他 > 详细

多路复用

时间:2017-09-01 19:31:39      阅读:248      评论:0      收藏:0      [点我收藏+]
服务端
from socket import *
import time
import select
server = socket(AF_INET,SOCK_STREAM)
server.bind((‘127.0.0.1‘,8081))
server.listen(3)
server.setblocking(False)      #accept变为非阻塞状态,
print(‘server startting...‘)

reads_l = [server,]  #每次来一个客户端,添加到列表
while True:
    r_l,_,_ = select.select(reads_l,[],[])
    for obj in r_l:   #接收到的对象
        if obj == server:         #server.accept               conn,addr = server.accept
            conn,addr = obj.accept()   #每个对象都有conn,addr
            reads_l.append(conn)
        else:                         #    conn.recv       接收到的数据
            data = obj.recv(1024)    #obj = conn
            obj.send(data.upper())

客户端
from socket import *
client = socket(AF_INET,SOCK_STREAM)
client.connect((‘127.0.0.1‘,8081))
while True:
    msg = input(‘p;ease:‘).strip()
    if not msg:continue
    client.send(msg.encode(‘utf-8‘))
    data = client.recv(1024)
    print(data.decode(‘utf-8‘))

  

多路复用

原文:http://www.cnblogs.com/52-qq/p/7464692.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!