-
Notifications
You must be signed in to change notification settings - Fork 21
Session模块
zerlenzhang edited this page Mar 5, 2020
·
1 revision
- 服务器上,最重要而复杂的对象就是Session对象,很多逻辑也是围绕Session展开的
- 每一个Tcp链接都会有一个session对象维持着,对于TCP而言,session从连接成功创建出来,直至断开连接才销毁,对于Udp而言,session是一个局部变量,只用于处理每次收到消息的逻辑,随用随删,所以长期保存tcpSession是有意义的,保存UdpSession是没有意义的。
-
判断此session是作为客户端还是服务端
-
args:
- session : AbstractSession
if Session.IsClient(session ) then ... end
-
获取当前session的ip和端口
-
args:
- session : AbstractSession
ip,port = Session.GetAddress(session )
- session : AbstractSession
-
结束当前会话
-
args:
- session : AbstractSession
Session.Close(session );
- session : AbstractSession
-
向这个session发送CmdPackage包
-
args:
- session : AbstractSession
- cmdPackage : CmdPackage 【即{stype,ctype,utag,body}】
Session.SendPackage(session ,loginRes);
-
发送RawPackage
-
args:
- session : AbstractSession
- rawPackage: RawPackage
Session.SendRawPackage(session ,raw);
-
使用udp协议发送CmdPackage,目前本函数仅当Netbus监听Udp端口时有效
-
args:
- ip : str
- port : int
- cmdPackage : CmdPackage 【即{stype,ctype,utag,body}】
Session.UdpSendPackage(clientIp,clientPort,msg);
utag = Session.GetUTag(session);
Session.SetUTag(session,utag);
uid = Session.GetUId(session);
Session.SetUId(session);