public DtuMain() { InitializeComponent(); this.skinEngine12.SkinFile = Application.StartupPath + "/Skins/SportsBlue.ssk"; FilePathCache.Path = ""; ShowLogData.isShow = true; if (SysInfo.IsReg) { string regStr = ""; if (FileHelper.IsExists(SysInfo.fileName)) { regStr = FileHelper.ReadFile(SysInfo.fileName); } else { regStr = "00000000000000000000000000000000"; FileHelper.writeFile(SysInfo.fileName, regStr); } if (regStr != SysInfo.GetRegStr2()) { this.Hide(); frmReg fReg = new frmReg(); fReg.ShowDialog(); if (frmReg.isClose) { this.Close(); Environment.Exit(0); return; } } } //MessageBox.Show(Common.HexStringUtility.StrToHexString("c").Length.ToString()); setUpTime(); CheckForIllegalCrossThreadCalls = false; // 新创建的线程可以访问窗体中的控件 xmlHelper = new XmlHelper(xmlConfig); //xml配置文件路径实例化 //ShowLogData.add("【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "】加载配置参数!"); loadConfigFlag = loadConfig(); // 获取xml中的配置参数 if (loadConfigFlag) //bool型的变量,判断是否获取到了配置参数包括ip port 超时间等参数 { //ShowLogData.add("【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "】数据库测试连接!"); bool flag = false; try { DateTime dateSql = Convert.ToDateTime(DbHelperSQL.GetSingle("select GETDATE()")); this.SSLDateStart.Text = dateSql.ToString("yyyy-MM-dd HH:mm:ss"); flag = true; } catch (Exception e) { string error = string.Format("数据库在初始化时出错,错误信息为{0}", e.Message); //MessageBox.Show(error); logHelper.Error(e.Message); Environment.Exit(0); } if (flag) { //ShowLogData.add("【"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "】数据库连接成功!"); //ShowLogData.add("【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "】初始化设备状态和缓存开始!"); installDeviceState(); //ShowLogData.add("【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "】初始化设备状态和缓存完成!"); fLog = new frmLog(); fConfig = new frmConfig(); //ShowLogData.add("【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "】日志和配置页面初始化成功!"); dtuServer = new Server.Core.ServerCore.ServerSocket(connectedCount); dtuServer.Timeout = timeout; dtuServer.ShowErrorLog = showErrorLog; dtuServer.ShowInfoLog = showInfoLog; dtuServer.RecordEevent = recordEventEnable; dtuServer.OnServerDataSocketHandler += dtuServer_OnServerDataSocketHandler; dtuServer.OnServerConnectedHandler += dtuServer_OnServerConnectedHandler; IPEndPoint dtuPoint = new IPEndPoint(IPAddress.Any, dtuPort); //DtuServer参数配置(以上) dtuServer.start(dtuPoint); //ShowLogData.add("【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "】dtuServer网关启动成功!"); webServer = new Server.Web.ServerCore.ServerSocket(connectedCount); webServer.ShowErrorLog = showErrorLog; webServer.ShowInfoLog = showInfoLog; webServer.OnServerDataSocketHandler += webServer_OnServerDataSocketHandler; webServer.OnServerStartHandler += webServer_OnServerStartHandler; IPEndPoint webPoint = new IPEndPoint(IPAddress.Any, webPort);//服务端会自动检测到自己的Ip,any //web数据服务参数配置(以上) webServer.start(webPoint); //ShowLogData.add("【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "】webServer网关启动成功!"); bridge = new DataBridge(dtuServer, webServer); //setUpTime();//时间显示 //增加2015-5-6 kqz string msg = string.Format("服务在端口{0}启动成功!", dtuPort); this.SSLState.Text = msg; this.Show(); } else { } } }
void webServer_OnServerStartHandler(Server.Web.ServerCore.ServerSocket server, string msg) { MessageBox.Show(msg, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); Environment.Exit(0); }
//将数据传递给处理方法proxyProcess (以下) void webServer_OnServerDataSocketHandler(Server.Web.ServerCore.ServerSocket server, Server.Web.ServerCore.AsyncSocketUserToken userToken, object data) { DataTransfer transfer = (DataTransfer)data; proxyProcess(transfer); }
public DataBridge(Server.Core.ServerCore.ServerSocket dtuServerSocket, Server.Web.ServerCore.ServerSocket webServerSocket) { this.dtuServerSocket = dtuServerSocket; this.webServerSocket = webServerSocket; }