Esempio n. 1
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            people = ServerOperation.ReceiveClientInfo();
            var nums = people.Count;

            UserChanged();
        }
Esempio n. 2
0
        public SocketManager(int port, ServerOperation operationDefinition)
        {
            ClientQueueManager queueManager = new ClientQueueManager(this);

            _opDef = operationDefinition;

            BeginListen(port);
        }
        private IOperation BuildServerOperation()
        {
            var server    = new ServerProxy(context.AppConfig, ModuleLogger(nameof(ServerProxy)), powerSupply, wirelessAdapter);
            var operation = new ServerOperation(actionCenter, context, logger, server, taskbar);

            context.Server = server;

            return(operation);
        }
Esempio n. 4
0
 public Form2(string AdministratorID)
 {
     InitializeComponent();
     s = new ServerOperation(AdministratorID);
     ServerOperation.UpdateOnlineUserList        += new ServerOperation.CrossThreadCallControlHandler(UpdateOnlineUserList);
     ServerOperation.AdministratorModifyPassword += new ServerOperation.CrossThreadCallControlHandler(AdministratorModifyPassword);
     //设置检查客户端是否掉线的定时器
     System.Timers.Timer CheckHeartBeatTimer = new System.Timers.Timer();
     CheckHeartBeatTimer.Interval = 6000;
     CheckHeartBeatTimer.Enabled  = true;
     CheckHeartBeatTimer.Elapsed += new System.Timers.ElapsedEventHandler(s.CheckOnlineUserList);
 }
Esempio n. 5
0
        async void HandleCommand(Command command)
        {
            cancelCts.Token.ThrowIfCancellationRequested();

            await Task.Yield();

            var token      = cancelCts.Token;
            var responseID = command.IsOneWay ? 0 : command.ResponseID;

            ServerOperation operation = null;

            lock (this) {
                if (responseID > 0)
                {
                    operation = new ServerOperation(command.ResponseID, token);
                    serverOperations.Add(responseID, operation);
                    token = operation.CancelCts.Token;
                }
            }

            Response response;

            try {
                response = await command.Run(this, token);
            } catch (Exception ex) {
                response = new Response {
                    ObjectID = command.ResponseID, Success = false, Error = ex.ToString()
                };
            }

            try {
                if (command.IsOneWay || command.ResponseID == 0 || response == null)
                {
                    return;
                }

                await SendMessage(response);
            } catch (Exception ex) {
                Debug("ERROR WHILE SENDING RESPONSE: {0}", ex);
            } finally {
                lock (this) {
                    if (operation != null)
                    {
                        operation.CancelCts.Dispose();
                        operation.CancelCts = null;
                        serverOperations.Remove(operation.ObjectID);
                    }
                }
            }
        }
Esempio n. 6
0
 private void tSMIStartListen_Click(object sender, EventArgs e)
 {
     try
     {
         if (b2 == true && b3 == false)
         {
             MessageBox.Show("服务正在运行中...");
             return;
         }
         if (ServerOperation.host == null || ServerOperation.host.State == System.ServiceModel.CommunicationState.Closed)
         {
             Thread th = new Thread(() =>
             {
                 bool isConn = ServerOperation.SetConnectionToClient();
                 if (isConn)
                 {
                     this.BeginInvoke(new Action(() =>
                     {
                         RefreshTxtMsg("成功开启服务!");
                         b2             = true;
                         b3             = false;
                         UserChanged   += ShowUsersOnline;
                         timer1.Enabled = true;
                         timer1.Start();
                     }));
                 }
                 else
                 {
                     this.BeginInvoke(new Action(() => { RefreshTxtMsg("开启服务失败!" + ServerOperation.ErrorMsg); }));
                 }
             });
             th.IsBackground = true;
             th.Start();
         }
         else
         {
             MessageBox.Show("正在启动服务请稍后...");
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
        /// <summary>
        /// 新建一个Web Request并发送请求,返回该Web Request。将通过ServerCallerErrorCallback返回错误信息
        /// </summary>
        /// <param name="op">服务器端操作码</param>
        /// <param name="postData">POST数据,key为变量名,value为值(将做URL Encode)</param>
        private WebRequest sendWebRequest(ServerOperation op, Dictionary <string, string> postData)
        {
            WebRequest webRequest = WebRequest.Create(string.Format("{0}?op={1}", SERVER_URL, (int)op));

            webRequest.ContentType = "application/x-www-form-urlencoded";
            webRequest.Method      = "POST";

            string postStr = "";

            foreach (KeyValuePair <string, string> entry in postData)
            {
                postStr += entry.Key + "=" + HttpUtility.UrlEncode(entry.Value) + "&";
            }

            byte[] bytes = Encoding.ASCII.GetBytes(postStr);
            Stream os    = null;

            try
            {
                webRequest.ContentLength = bytes.Length;
                os = webRequest.GetRequestStream();
                os.Write(bytes, 0, bytes.Length);
            }
            catch (Exception e)
            {
                errorCallback(e.Message, e);
                webRequest = null;
            }
            finally
            {
                if (os != null)
                {
                    os.Close();
                }
            }

            return(webRequest);
        }
Esempio n. 8
0
 private void tSMIStartListen_Click(object sender, EventArgs e)
 {
     try
     {
         Thread th = new Thread(() =>
         {
             if (ServerOperation.SetConnectionToClient())
             {
                 RefreshTxtMsg("成功开启服务!");
             }
             else
             {
                 RefreshTxtMsg("开启服务失败!");
             }
         });
         th.IsBackground = true;
         th.Start();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Esempio n. 9
0
        private void performServerOperation(ServerOperation serverOperation)
        {
            if (checkIfLoggedIn())
            {
                statusMessageTextbox.Text = "";
                controlTabs.SelectTab("responseMessage");
                controlTabs.Enabled = false;
                switch (serverOperation)
                {
                case ServerOperation.ADD_MASTERPOINTS:
                    up.uploadMasterpoints(masterpointsTextbox.Text);
                    break;

                case ServerOperation.ADD_USERS:
                    up.uploadUsers(usersTextbox.Text);
                    break;

                case ServerOperation.DELETE_USERS:
                    up.deleteUsers(deleteUsersTextbox.Text);
                    break;

                case ServerOperation.TRANSFER_USERS:
                    up.transferUsers(transferUsersTextbox.Text);
                    break;
                }
                if (up.errorFound)
                {
                    statusMessageTextbox.ForeColor = Color.Red;
                }
                else
                {
                    statusMessageTextbox.ForeColor = Color.Green;
                }
                statusMessageTextbox.AppendText(up.statusText + Environment.NewLine + "Details" + Environment.NewLine + up.m_returnContent);
                controlTabs.Enabled = true;
            }
        }
Esempio n. 10
0
        private void 关闭服务ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            bool b4 = false;

            if (ServerOperation.host == null)
            {
                return;
            }
            if (ServerOperation.host.State == System.ServiceModel.CommunicationState.Closing)
            {
                MessageBox.Show("正在关闭中...请稍后");
                return;
            }
            if (ServerOperation.host.State == System.ServiceModel.CommunicationState.Closed)
            {
                MessageBox.Show("服务已关闭...");
                return;
            }
            Thread th = new Thread(() =>
            {
                b4 = ServerOperation.CloseConnectionToClient();

                if (b4)
                {
                    this.BeginInvoke(new Action(() => { RefreshTxtMsg("成功关闭服务!"); dataGridView1.DataSource = null; }));
                    b3 = true;
                }
                else
                {
                    this.BeginInvoke(new Action(() => { RefreshTxtMsg("关闭服务失败!" + ServerOperation.ErrorMsg); }));
                }
            });

            th.IsBackground = true;
            th.Start();
        }
Esempio n. 11
0
        private async Task ServerListLoad()
        {
            try
            {
                ControlHelpers.ButtonStatusChange(buttonServerListReload, "Requested");
                await fileDb.ReadTable(FileDb.TableName.TBL_SERVER);

                List <string> instanceNoList       = new List <string>();
                List <string> deleteServerNameList = new List <string>();

                foreach (var a in fileDb.TBL_SERVER.Data)
                {
                    if (a.Value.serverInstanceNo != "NULL")
                    {
                        instanceNoList.Add(a.Value.serverInstanceNo);
                    }
                }


                List <serverInstance> serverInstances = new List <serverInstance>();

                try
                {
                    serverInstances = await ServerOperation.GetServerInstanceList(instanceNoList);
                }
                catch (Exception ex)
                {
                    if (ex.Message.Contains("server not found"))
                    {
                        //
                    }
                    else
                    {
                        throw new Exception(ex.Message);
                    }
                }

                dgvServerList.InvokeIfRequired(async s =>
                {
                    try
                    {
                        s.Rows.Clear();
                        foreach (var a in fileDb.TBL_SERVER.Data)
                        {
                            var serverInstance = serverInstances.Find(x => x.serverName == a.Key.serverName);

                            if (serverInstance != null)
                            {
                                int n = s.Rows.Add();
                                s.Rows[n].Cells["CheckBox"].Value   = false;
                                s.Rows[n].Cells["Name"].Value       = a.Key.serverName;
                                s.Rows[n].Cells["ZoneNo"].Value     = a.Value.zoneNo + "(" + serverInstance.zone.zoneCode + ")";
                                s.Rows[n].Cells["InstanceNo"].Value = a.Value.serverInstanceNo;
                                s.Rows[n].Cells["PublicIp"].Value   = a.Value.serverPublicIp;
                                s.Rows[n].Cells["PrivateIp"].Value  = a.Value.serverPrivateIp;
                                s.Rows[n].Cells["Status"].Value     = serverInstance.serverInstanceStatus.code;
                                s.Rows[n].Cells["Operation"].Value  = serverInstance.serverInstanceOperation.code;
                            }
                            else
                            {
                                deleteServerNameList.Add(a.Key.serverName);
                            }
                        }

                        foreach (var a in deleteServerNameList)
                        {
                            var p = new List <KeyValuePair <string, string> >();
                            p.Add(new KeyValuePair <string, string>("serverName", a));
                            await fileDb.DeleteTable(FileDb.TableName.TBL_SERVER, p);
                        }
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }
                });
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                ControlHelpers.ButtonStatusChange(buttonServerListReload, "Reload");
            }
        }
Esempio n. 12
0
 private void Send(ServerOperation operation, params object[] objects)
 {
     _connStream.WriteByte((byte)operation);
     Send(objects);
 }
Esempio n. 13
0
 internal ArangoServerOperation(ServerOperation serverOperation)
 {
     _serverOperation = serverOperation;
 }