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(); }
/// <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("监听数据库线程启动完成!"); }