zoukankan      html  css  js  c++  java
  • 使用 linux 的 epoll 的套接字

    1.  代码:

        import socket

        import selectors    #IO多路复用的选择模块

        epoll_selector = selectors.EpollSelector()  实例化一个和epoll通信的选择器

        server = socket.socket()

        server.bind(("127.0.0.1",8899))

        server.listen(1000)

        epoll_selector.register(server,selector.EVENT_READ,accept)    监听有无连接

        def accept(server):

          conn,addr = server.accept()

          epoll_selector.register(conn,selector.EVENT_READ,myread)  监听有无数据传输

        def myread(conn):

          recv_data = conn.recv(1024)

          if recv_data:

            print(recv_data)

            conn.send(recv_data)

          else:

            epoll_selector.unregister(conn)      关闭该监听

            conn.close()

          while True:

            events = epoll_selector.select()    查询准备好的事件

            for key,mask in events:

              callback = key.data    取出回调函数

              sock = key.fileobj    取出套接字

              callback(sock)       

        图例:
            


       

  • 相关阅读:
    c#委托与事件
    c#垃圾回收与资源管理
    c#接口、抽象类
    c#集合类、ArrayList、queue
    c#位运算
    c#索引器
    c#使用属性封装
    c#继承
    c#数组参数
    Lambda表达式
  • 原文地址:https://www.cnblogs.com/cxhzy/p/9978082.html
Copyright © 2011-2022 走看看