python io

import socket,select

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

li = [sk,]

while True:
    r,w,e = select.select(li,[],[],5)

    for obj in r:
        if obj == sk:
            conn,addr = obj.accept()
            print(conn)
            li.append(conn)
        else:
            data=obj.recv(1024).decode("utf8")
            print("%s 号客户发来: %s"%(li.index(obj),data))
            msg = input(">>>:")
            obj.sendall(msg.encode("utf8"))

    print("======",r)




import  socket

client = socket.socket()
client.connect(("127.0.0.1",8090))

while True:
    msg = input(">>>")
    client.send(msg.encode("utf8"))
    data = client.recv(1024)
    print(data.decode("utf8"))

 

selectors
import selectors,socket

sel = selectors.DefaultSelector()

def accept(sk,mask):
    conn,addr = sk.accept()
    print("accepted", conn ,"from", addr)
    conn.setblocking(False)
    sel.register(conn,selectors.EVENT_READ,read)

def read(conn,mask):
    try:
        data = conn.recv(1024)
        if not data:
            raise Exception
        print("echoing", repr(data), "to", conn)
        conn.send(data)
    except Exception as e:
        print("closing", conn)
        sel.unregister(conn)
        conn.close()

sk = socket.socket()
sk.bind(("127.0.0.1",8083))
sk.listen(100)
sk.setblocking(False)

sel.register(sk,selectors.EVENT_READ,accept)

while True:
    events = sel.select()
    for key,mask in events:
        callback = key.data
        callback(key.fileobj,mask)




import socket

client = socket.socket()
client.connect(("127.0.0.1",8083))

while True:
    msg = input(">>>")
    client.send(msg.encode("utf8"))
    data = client.recv(1024)
    print(data.decode("utf8"))

 

 

posted on 2017-02-07 16:53  LiaoBS  阅读(141)  评论(0编辑  收藏  举报

导航