码迷,mamicode.com
首页 > 其他好文 > 详细

IO多路复用

时间:2017-04-17 00:02:01      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:sel   bfd   bind   log   import   inpu   客户端   else   style   

IO多路复用

selcet

import socket
import select
r,w,e=select.select(inputs,[],[],0.05) #IO多路复用

服务端
IO多路复用,同时监听多个socket对象
技术分享
import socket
import select

sk=socket.socket()
sk.bind(("127.0.0.1",8001))
sk.listen(5)

sk1=socket.socket()
sk1.bind(("127.0.0.1",8002))
sk1.listen(5)
inputs=[sk,sk1,]

while True:
    #IO多路复用,同时监听多个socket对象
    # select 内部进行循环操作
    # poll 内部进行循环操作
    # epoll
    r,w,e=select.select(inputs,[],[],0.05) #IO多路复用
    # 监听inputs ,访问sk,r=[sk],访问sk1,r=[sk1],
    for obj in r:
        if obj in [sk,sk1]:
            print("新连接进来了。。。",inputs)
            conn,addr=obj.accept()
            inputs.append(conn)
        else:
            print("有用户发数据了。。。",obj)
            data=obj.recv(1024)
            obj.sendall(data)
View Code

客户端

技术分享
import socket

sk=socket.socket()

sk.connect(("127.0.0.1",8001))

while True:
    v=input(">>")
    sk.send(bytes(v,encoding="utf-8"))
    c=sk.recv(1024)
    print(c)
View Code
技术分享
import socket

sk=socket.socket()

sk.connect(("127.0.0.1",8002))

while True:
    v=input(">>")
    sk.send(bytes(v,encoding="utf-8"))
    c=sk.recv(1024)
    print(c)
View Code

 

 

 

IO多路复用

标签:sel   bfd   bind   log   import   inpu   客户端   else   style   

原文地址:http://www.cnblogs.com/arthas-zht/p/6720569.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!