服务器端:gevent_server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
import sys
import socket
import time
import gevent
from gevent import socket, monkey
monkey.patch_all() def server(port):
s = socket.socket()
s.bind(( '0.0.0.0' , port))
s.listen( 500 )
while True :
cli, addr = s.accept()
gevent.spawn(handle_request, cli) #启动一个协程
def handle_request(conn):
try :
while True :
data = conn.recv( 1024 )
print ( "recv:" , data)
conn.send(data)
if not data:
conn.shutdown(socket.SHUT_WR)
except Exception as ex:
print (ex)
finally :
conn.close()
if __name__ = = '__main__' :
server( 8001 )
客户端:socket_client.py
|
import
sys
import
socket
import
time
import
gevent
from
gevent
import
socket, monkey
monkey.patch_all()
def
server(port):
s
=
socket.socket()
s.bind((
'0.0.0.0'
, port))
s.listen(
500
)
while
True
:
cli, addr
=
s.accept()
gevent.spawn(handle_request, cli)
#启动一个协程
def
handle_request(conn):
try
:
while
True
:
data
=
conn.recv(
1024
)
print
(
"recv:"
, data)
conn.send(data)
if
not
data:
conn.shutdown(socket.SHUT_WR)
except
Exception as ex:
print
(ex)
finally
:
conn.close()
if
__name__
=
=
'__main__'
:
server(
8001
)