Esempio n. 1
0
        static void Main(string[] args)
        {
            MyServer appServer = new MyServer();
            var      se        = new SuperSocket.SocketBase.Config.ServerConfig();

            se.TextEncoding = "Unicode"; // System.Text.Encoding.
            se.TextEncoding = "gbk";     // System.Text.Encoding.
            se.Ip           = "127.0.0.1";
            se.Port         = 2020;
            se.Mode         = SocketMode.Tcp;

            System.Threading.Thread thSend = new System.Threading.Thread(SendMsgToClient);
            thSend.Start();
            //Setup the appServer
            if (!appServer.Setup(se)) //Setup with listening port
            {
                Console.WriteLine("Failed to setup!");
                Console.ReadKey();
                return;
            }
            Console.WriteLine();
            //Try to start the appServer
            if (!appServer.Start())
            {
                Console.WriteLine("Failed to start!");
                Console.ReadKey();
                return;
            }


            appServer.NewSessionConnected += appServer_NewSessionConnected;
            appServer.SessionClosed       += appServer_SessionClosed;
            appServer.NewRequestReceived  += new RequestHandler <MySession, SuperSocket.SocketBase.Protocol.BinaryRequestInfo>(appServer_NewRequestReceived);


            //// appServer.NewRequestReceived += appServer_NewRequestReceived;
            //Console.WriteLine("The server started successfully, press key 'q' to stop it!");

            //while (Console.ReadKey().KeyChar != 'q')
            //{
            //    Console.WriteLine();
            //    continue;
            //}

            ////Stop the appServer
            //appServer.Stop();
            //Console.WriteLine("The server was stopped!");
            Console.ReadKey();
        }
Esempio n. 2
0
        /// <summary>
        /// 启动服务器端服务
        /// </summary>
        /// <param name="oServerXml">界面的xml参数</param>
        public void ServerSvrStart(ServerXml oServerXml)
        {
            var config = new SuperSocket.SocketBase.Config.ServerConfig()
            {
                Name                     = "SSServer",
                ServerTypeName           = "SServer",
                ClearIdleSession         = true, //60秒执行一次清理90秒没数据传送的连接
                ClearIdleSessionInterval = 60,
                IdleSessionTimeOut       = 90,
                MaxRequestLength         = 4096, //最大包长度
                Ip   = "Any",
                Port = Convert.ToInt32(oServerXml.Port),
                MaxConnectionNumber = 100000,
            };

            //var app = new MyServer();
            //LogHelper.SetOnLog(new LogHelper.LogEvent((m) =>
            //{
            //    txtAll.Text = string.Join(" ", m, "\r\n");
            //    txtAll.Select(txtAll.TextLength, 0);
            //    txtAll.ScrollToCaret();
            //}));
            mMyServer.Setup(config);
            if (!mMyServer.Start())
            {
                //LogHelper.WriteLog(string.Format("Socket {0}:{1}启动失败,请检查权限或端口是否被占用!", config.Ip, config.Port));
                LogHelp.Info(string.Format("Socket {0}:{1}启动失败,请检查权限或端口是否被占用!", config.Ip, config.Port));
            }


            //启动个线程
            m_MonitorDBThreadID = new Thread(MonitorDBThread);
            //主线程退出,此线程立刻退出
            m_MonitorDBThreadID.IsBackground = true;
            m_MonitorDBThreadID.Start();

            LogHelp.Info("监听数据库线程启动完成!");
        }