/// <summary> /// Construction /// </summary> /// <param name="socket">client socket</param> /// <param name="socketServer">the socket server</param> /// <param name="logger">logger object for ouput session message</param> internal TcpSocketAsyncSession(Socket socket, ISocketServer socketServer, IMsgProtocol protocol, IList<IMsgFilter> requestFilters, IList<IMsgHandler> requestHandlers, ILogger logger) : base(protocol, requestFilters, requestHandlers, logger) { m_ClientSocket = socket; m_SocketServer = socketServer; m_Logger = logger; }
/// <summary> /// 初始化加载器 /// </summary> public void initializeSocketServer() { //读取配置 m_Protocol = new FixSizeProtocol(5); m_RequestHandlers = new List<IMsgHandler>(); m_RequestHandlers.Add(new ResponseHandler()); m_RequestFilters = new List<IMsgFilter>(); // m_RequestFilters.Add(new Protocol.RequestFilters.DateEcrptyFilter()); // m_RequestFilters.Add(new Protocol.Handlers.ServerMarkFilter()); #if DEBUG m_ServerConfig = new ServerConfig(); m_ServerConfig.BackLogCount = 5; m_ServerConfig.BufferSize = 1024; m_ServerConfig.MaxSessionCount = 10; m_ServerConfig.ServerIpAddress = "192.168.10.2"; m_ServerConfig.ServerMode = ServerMode.UDP; m_ServerConfig.ServerPort = 6000; m_ServerConfig.SessionTimeout = 20*60; m_ServerConfig.ServerName = "ATONServer"; m_ConnectFilterList = new List<IConnectFilter>(); #endif m_SocketServer = SocketServerFactory.CreateSocketServer(m_ServerConfig.ServerMode); m_SocketServer.initializeServer(m_ServerConfig, m_Protocol, m_ConnectFilterList, m_RequestFilters, m_RequestHandlers, new ConsoleLogger(LoggerLevelE.INFO)); }
public SocketSessionBase(IMsgProtocol protocol, IList<IMsgFilter> requestFilters, IList<IMsgHandler> requestHandlers, ILogger logger) { SessionId = null; m_RquestProtocol = protocol; m_RequestHandlers = requestHandlers; m_RequestFilters = requestFilters; m_Logger = logger; }
/// <summary> /// Construction /// </summary> /// <param name="socket">client socket</param> /// <param name="socketServer">the socket server</param> /// <param name="logger">logger object for ouput session message</param> internal UdpSocketAsyncSession(Socket socket, ISocketServer socketServer, IMsgProtocol protocol, IList<IMsgFilter> requestFilters, IList<IMsgHandler> requestHandlers, ILogger logger) : base(protocol, requestFilters, requestHandlers, logger) { SessionTimeout = (socketServer as UdpSocketAsyncServer).SessionTimeout; m_ClientSocket = socket; m_SocketServer = socketServer; m_Logger = logger; m_SocketAsyncSender = new UdpSocketAsyncSender(socket, socketServer); }
public override void initializeServer( ServerConfig config, IMsgProtocol protocol, IList<IConnectFilter> connectFilters, IList<IMsgFilter> requestFilters, IList<IMsgHandler> requestHandlers, ILogger logger) { base.initializeServer(config, protocol, connectFilters, requestFilters, requestHandlers, logger); bufferManager = new BufferManager(BufferSize * MaxSessionCount, BufferSize); m_ReadWritePool = new SocketAsyncEventArgsPool(MaxSessionCount); m_ReadWritePool.Initize(bufferManager); }
public override void initializeServer(ServerConfig config, IMsgProtocol protocol, IList<IConnectFilter> connectFilters, IList<IMsgFilter> requestFilters, IList<IMsgHandler> requestHandlers, ILogger logger) { base.initializeServer(config, protocol, connectFilters, requestFilters, requestHandlers, logger); m_ListenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); //数据通讯socket m_DataSockeet = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); //随机生成数据端口 // ServerDataSocketPort = ServerPort + (new Random()).Next(1, 100); ServerDataSocketPort = ServerPort + 1; r_bufferManager = new BufferManager(BufferSize * MaxSessionCount, BufferSize); m_ReadPool = new SocketAsyncEventArgsPool(MaxSessionCount); m_ReadPool.Initize(r_bufferManager); m_bufferManager = new ConcurrentDictionary<string, UdpSocketAsyncBuffer>(); }
public bool SetProtocol(IMsgProtocol protocol) { m_Protocol = protocol; return protocol != null; }