예제 #1
0
        public void ConnectServer(NetClient client)
        {
            if (NetClientManager.ExistClient(client.ClientKey))
            {
                DisconnectServer(client.ClientKey);
            }
            NetClientManager.AddClient(client);

            LogHelper help = TableHelper.GetLogHelper(client.ClientKey);

            help.LogMessage(client.ClientKey, "Connect " + client.Database, LogType.NetWork);
        }
예제 #2
0
        public void DisconnectServer(string clientKey)
        {
            NetClient client = NetClientManager.GetNetClient(clientKey);



            lock (mBroadcastRemoting)
            {
                if (mBroadcastRemoting.ContainsKey(clientKey))
                {
                    mBroadcastRemoting[clientKey].Release();
                    mBroadcastRemoting.Remove(clientKey);
                }
            }
            lock (mDataTableRemoting)
            {
                if (mDataTableRemoting.ContainsKey(clientKey))
                {
                    try
                    {
                        mDataTableRemoting[clientKey].Release();
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                    finally
                    {
                        mDataTableRemoting.Remove(clientKey);
                    }
                }
            }

            lock (mMonitorRemoting)
            {
                if (mMonitorRemoting.ContainsKey(clientKey))
                {
                    mMonitorRemoting.Remove(clientKey);
                }
            }

            if (client == null)
            {
                return;
            }

            string    hostname = client.HostName;
            LogHelper help     = TableHelper.GetLogHelper(clientKey);

            help.LogMessage(clientKey, "Disconnect " + client.Database, LogType.NetWork);

            NetClientManager.DeleteClient(clientKey);
        }
예제 #3
0
        public DataTableRemoting(string clientKey)
        {
            mLogHelper = TableHelper.GetLogHelper(clientKey);
            string message = "get new loghelper success.";

            mLogHelper.LogMessage(clientKey, message, LogType.Program);

            mClientKey = clientKey;
            NetClient netclient = NetClientManager.GetNetClient(clientKey);

            mHostName = netclient.HostName;
            mDBName   = netclient.Database;
            message   = "get net client success.";
            mLogHelper.LogMessage(clientKey, message, LogType.Program);

            mTableUnitManager = TableHelper.GetTableUnitManager(clientKey);
            message           = "get table unit manager success.";
            mLogHelper.LogMessage(clientKey, message, LogType.Program);

            message = "get new DataTableRemoting.";
            mLogHelper.LogMessage(mClientKey, message, LogType.Program);
        }
예제 #4
0
파일: Program.cs 프로젝트: weimingtom/pap2
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.DarkYellow;
            string title   = "DataTableServer Runing";
            bool   success = true;

            try
            {
                DataTableServer.Run("DataTableRemotingServer.exe.config");
            }
            catch (Exception ex)
            {
                Console.WriteLine("服务器启动失败,请查看配置文件。\r\n" + ex.Message);
                success = false;
            }
            if (success)
            {
                Console.BufferHeight = 8000;
                Console.BufferWidth  = 300;
                Console.WriteLine("Server start success.");

                string[] classes = DataTableServer.GetRemotingEntries();
                Console.WriteLine(classes[0]);

                while (DataTableServer.RunServer)
                {
                    NetClientManager.CheckConnect();
                    Console.Title = title;
                    title        += ".";
                    if (title.Length > 30)
                    {
                        title = "DataTableServer Runing";
                    }
                    System.Threading.Thread.Sleep(1000);
                }
                DataTableServer.Release();
            }
        }
예제 #5
0
 public void SetNetwork(NetClientManager s_network)
 {
     this.s_network = s_network;
 }
예제 #6
0
        public NetClient GetNetClient(string clientkey)
        {
            NetClient client = NetClientManager.GetNetClient(clientkey);

            return(client);
        }
예제 #7
0
 public string[] GetNetClientKeys()
 {
     string[] result = NetClientManager.GetClientKeys();
     return(result);
 }