private void btn_Start_Click(object sender, EventArgs e) { if (btn_Start.Text == "启动服务器") { try { //刷新硬件配置参数 if (CommonFun.RefreshHardConfig()) { //检查并更新数据库 DB_Service.CheckDBAndUpdate(); //初始化5个常用表 BasicData.InitALLTable(); //初始化定位信息表和数据采集表中最后一条记录的时间 if (DB_Service.InitLastInsertHistory_Position()) { //监听本地端口 Socket_Service.StartListenConnectOfClient(Global.ServerPort); //连接完毕,锁定UI UI_OnConn(); //开始轮询前删除底层数据区文件,不存在不引发异常 File.Delete(@"X:\TAG.TXT"); //从上次的临时数据文件重载Protocol_Service.Position的数据 CommonFun.ReloadPositionFromFile(); //开始循环轮询 LoopKey = true; //发送服务器状态 Socket_Service.BroadcastMessage(Socket_Service.Command_S2C_UpdatePosition, "True", "", "", "", Protocol_Service.AlarmAreaName + "!0!False", "False", "False", "False", "!"); } else { MessageBox.Show("无法取得定位信息历史表或采集信息历史表中最新的时间。请检查数据库连接是否正常后重试。", "连接数据库"); } } } catch (Exception ex) { MessageBox.Show(ex.Message + "\n" + ex.TargetSite + "\n" + ex.StackTrace, "启动服务器异常"); //关闭循环轮询 LoopKey = false; //恢复协议类变量为初始值 Protocol_Service.ResumeALL(); //清空所有表 BasicData.DisableALLTable(); //连接关闭,解锁UI UI_OffConn(); } } else { //关闭循环轮询 LoopKey = false; //发送服务器状态 Socket_Service.BroadcastMessage(Socket_Service.Command_S2C_UpdatePosition, "False", "", "", "", Protocol_Service.AlarmAreaName + "!0!False", "False", "False", "False", "!"); //停止监听 Socket_Service.StopListenConnectOfClient(); //恢复协议类变量为初始值 Protocol_Service.ResumeALL(); //清空所有表 BasicData.DisableALLTable(); //连接关闭,解锁UI UI_OffConn(); } }