Open utterances-bot opened 2 years ago
import gevent
from gevent import socket, monkey monkey.patch_all() ## 处理协程io异步问题
def server(port): print(f'{"gevent TCP socket服务启动中".center(100,"*")}') s = socket.socket() s.bind(('0.0.0.0', port)) ## 绑定port端口号 s.listen(500) ## 最多支持500个并发,其实可以不加500也可以 while True: cli, addr = s.accept() gevent.spawn(handle_request, cli)
def handle_request(conn): try: while True:
data = conn.recv(10240) ## 客户端可能发过来内容过多可以加大字节数
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(8081)
gevent也可以实现高并发
socket分包粘包 | 30年磨一剑
socket在发送数据的时候,如果数据返回过大,会分批次发送
https://jueqingsizhe66.github.io/post/socket%E5%88%86%E5%8C%85%E7%B2%98%E5%8C%85/