zoukankan      html  css  js  c++  java
  • IO多路复用

    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
     
  • 相关阅读:
    C++getline()
    Financial Tsunami
    Exploring Matrix
    shuffle.java
    Java数组声明
    jpg与jpeg的区别在哪
    WinForm训练一_改变窗体大小
    ErrorProvider与CheckedListBox
    如何看待 SAE 在2014 年 3 月 24 日发生的的大面积宕机事故?
    一个技术青年的网络失足
  • 原文地址:https://www.cnblogs.com/arthas-zht/p/6720569.html
Copyright © 2011-2022 走看看