天天看點

Python3之協程socket應用服務端用戶端

服務端

from gevent import monkey;

monkey.patch_all()
import gevent
from socket import *

s = socket(AF_INET, SOCK_STREAM)
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, )
s.bind(('127.0.0.1', ))
s.listen()


def comm(conn):
    while :
        try:
            data = conn.recv()
            print(data)
            if not data: break
            conn.send(data.upper())
        except Exception:
            break
    conn.close()


while :
    conn, addr = s.accept()
    gevent.spawn(comm, conn)
s.close()
           

用戶端

from socket import *

c = socket(AF_INET, SOCK_STREAM)
c.connect(('127.0.0.1', ))

while :
    msg = input('>>請輸入>>:').strip()
    if not msg: continue
    c.send(msg.encode('utf-8'))
    data = c.recv()
    print(data.decode('utf-8'))
c.close()