/// <summary> /// 初始化token池,BaseServer的子类可以重载该方法以填充 BaseToken 的子类 /// </summary> /// <param name="c"></param> /// <param name="coding"></param> public virtual void Init(AbsHandlerCenter c) { //Console.WriteLine("绑定消息处理中心"); Debugger.Log("绑定消息处理中心"); center = c; //Console.WriteLine("初始化token池"); Debugger.Log("初始化token池"); tokens = new ObjPool <BaseToken>(maxConn); for (int i = 0; i < maxConn; i++) { T2 t = Activator.CreateInstance <T2>(); t.Init(c); t.CloseDe = ClientClose; tokens.Push(t); } }
public ServerCenter(int port, int maxUser, int receiveBufferSize, AbsHandlerCenter messageHandler) { this.messageHandler = messageHandler; userPool = new UserTokenPool(maxUser); for (int i = 0; i < maxUser; i++) { UserToken token = new UserToken(receiveBufferSize); token.CC = ClientClose; token.LD = LengthEncoding.decode; token.LE = LengthEncoding.encode; token.SD = MessageEncoding.Decode; token.SE = MessageEncoding.Encode; token.messageHandler = messageHandler; userPool.Push(token); } listenServer = new ListenServer(maxUser, ProcessAccept); listenServer.Init(); listenServer.Start(port); }
public void Init(AbsHandlerCenter c) { center = c; }