基于python的tcp框架, 主要参考golang的Zinx框架进行实现,本项目主要用于学习, 同时也欢迎贡献代码。
- 提供基于线程的链接管理
- tcp拆包封包
- tcp路由
server.py
from zinxPy.server import Server
server = Server()
@server.router(1)
class MyRouter(BaseRouter):
def before_handle(self, request):
print("=================before handle=====================")
def handle(self, request):
print("receive msg:", request.msg.data.decode())
request.conn.send_msg(101, "ping ping".encode())
def after_handle(self, request):
print("=================after handle======================")
server.serve()
client.py
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('127.0.0.1', 9999))
msg = Message(1, "hello".encode())
client.send(pack(msg))
client.close()
config.json
{
"host": "0.0.0.0",
"port": 9999,
"name": "zinxPy",
"max_conn": 100,
"max_package_size": 1024
}