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
     
  • 相关阅读:
    nvidia-smi电源显示ERR (Pwr:Usage ERR)
    阿里云windows安装ftp
    ansible常用模块
    ansible playbook
    ansible Inventory
    ansible安装
    ansible命令
    ansible配置文件
    js插件中提示框含有 或者<br/>显示不成换行怎么办,改样式
    [转] react项目安装及运行
  • 原文地址:https://www.cnblogs.com/arthas-zht/p/6720569.html
Copyright © 2011-2022 走看看