
import socket
from threading import Thread
client = socket.socket()
client.connect(('127.0.0.1',8080))
def c(client,i):
while True:
client.send(('hello %s'%i).encode("utf-8"))
data = client.recv(1024)
print(data.decode('utf-8'))
for i in range(400):
t = Thread(target=c,args=(client,i)) # 客户端使用多线程实现并发模拟
t.start()

import socket
from gevent import spawn
from gevent import monkey;
monkey.patch_all()
server = socket.socket()
server.bind(('127.0.0.1', 8080))
server.listen(5)
def talk(conn):
while True:
try:
data = conn.recv(1024) # 等待客户端发消息 阻塞态
if len(data) == 0: break
print(data.decode('utf-8'))
conn.send(data.upper())
except ConnectionResetError as e:
print(e)
break
conn.close()
def c():
while True:
conn, addr = server.accept() # 监听 等待客户端的连接 阻塞态
spawn(talk,conn)
s1 = spawn(c)
s1.join()
