private void timer1_Tick(object sender, EventArgs e) { people = ServerOperation.ReceiveClientInfo(); var nums = people.Count; UserChanged(); }
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); }
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); }
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); } } } }
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); }
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); } }
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; } }
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(); }
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"); } }
private void Send(ServerOperation operation, params object[] objects) { _connStream.WriteByte((byte)operation); Send(objects); }
internal ArangoServerOperation(ServerOperation serverOperation) { _serverOperation = serverOperation; }