python高并發框架,python-gevent模塊實現socket大并發

 2023-10-18 阅读 30 评论 0

摘要:服務器端: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): ?

服務器端: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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import?socket
HOST?=?'localhost'??# The remote host
PORT?=?8001??# The same port as used by the server
s?=?socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
while?True:
????msg?=?bytes(input(">>:"), encoding="utf8")
????s.sendall(msg)
????data?=?s.recv(1024)
????#
????print('Received', data)
s.close()
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)

轉載于:https://www.cnblogs.com/394510636-ff/p/9282152.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/149856.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息