epoll

import selectors #epoll模块
import socket

epoll = selectors.EpollSelector()   #生成一个epoll
server = socket.socket()    #生成套接字


server.bind(('', 8082))
server.listen(100)

#回调函数  用来生成对等连接套接字
def create_conneciton(server):
    conn, addres = server.accept()  #生成对等连接套接字

    #处理消息的函数注册
    epoll.register(conn, selectors.EVENT_READ, read_data)
    return conn


#回调函数   用来处理消息
def read_data(conn):
    data = conn.recv(1024)
    if data:
        print(data)
        conn.send(data)
    else:
        epoll.unregister(conn)  #删掉注册事件


#注册回调函数
epoll.register(server, selectors.EVENT_READ, create_conneciton)


while True:
    events = epoll.select()  #去操作系统查询 有多少人连接/有没有消息

    for key,mask in events:
        sock = key.fileobj      #连接客户端的套接字server/处理消息conn
        callback = key.data     #回调函数 create_conneciton/read_data

        callback(sock)      #回调create_conneciton(server)/read_data(conn)
import socket

client = socket.socket()
client.connect(('127.0.0.1', 8082))

while True:
    data = input('输入数据:')
    client.send(data.encode())
    recv_data = client.recv(1024)
    print(recv_data.decode())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值