/// <summary> /// this Constructor do the following things /// 1-Set Configurations /// 2-Connect to db /// 3-Start Logging Thread /// 4-Start thFlushMemory Thread /// </summary> public ConferenceServer() { /* * loading configuration files * */ getConfig(); dbCon=new MySqlWrapper(); dbCon.Connect(databaseServer,databaseUsername,databasePassword); dbCon.SelectDB("ctool"); staticServerInstance = this; #if TESTING Console.Write(databaseServer + " " + databaseUsername + " "+ databasePassword); #endif // insertFlowThread = new Thread(new ThreadStart(insertFlowMessages)); // insertFlowThread.Name = "insertFlowThread Thread : ConferenceServer()"; // insertFlowThread.Start(); // // thread free all extra resorces after specific time Kamran Thread thFlushMemory = new Thread(new ThreadStart(overallFlushMemory)); //per2 thFlushMemory.Name = "overallFlushMemory Thread : ConferenceServer";//per2 thFlushMemory.Start();//per2 }
static void Main(string[] args) { try { // setup .NET remoting System.Configuration.ConfigurationSettings.GetConfig("DNS"); /* * Belikov.GenuineChannels.DotNetRemotingLayer.GenuineGlobalEventProvider provides the global * GenuineChannelsGlobalEvent event fired for each Genuine Channels event. You can attach a * handler to it if you want to process events generated by all channels and services. */ GenuineGlobalEventProvider.GenuineChannelsGlobalEvent += new GenuineChannelsGlobalEventHandler(GenuineChannelsEventHandler); //GlobalLoggerContainer.Logger = new BinaryLog(@"c:\tmp\server.log", false); //Belikov.GenuineChannels.Logbook.GenuineLoggingServices.SetUpLoggingToFile("D:\\GenuineChannelsLog\\server.genchlog",GenuineLoggingServices.DefaultLoggingOptions); RemotingConfiguration.Configure("Server.exe.config"); // bind the server ConferenceServer server = new ConferenceServer(); RemotingServices.Marshal(server, "ChatServer.rem"); #if TESTING Console.WriteLine("Server has been started. Press enter to exit."); #endif for(;;) Console.ReadLine(); //server.billingThread.Abort(); } catch(Exception ex) { Console.WriteLine("Exception: {0}. Stack trace: {1}.", ex.Message, ex.StackTrace); } }