public static void MainThread() { while (SysFlag.ServiceStart) { try { Socket client = Configs.ListenSock.Accept();//当有可用的客户端连接尝试时执行,并返回一个新的socket,用于与客户端之间的通信 IPEndPoint clientip = (IPEndPoint)client.RemoteEndPoint; ClientThread newclient = new ClientThread(client); Thread newthread = new Thread(new ThreadStart(newclient.ClientService)); newthread.Start(); SysFlag.ListenOk = true; if (!SysFlag.ServiceStart) { client.Close(); return; } } catch (Exception E) { if (SysFlag.ListenOk) { CreateInfor.WriteLogs(E.Message + "导致【RTU服务主线程抛锚】!"); } SysFlag.ListenOk = false; } } Configs.ListenSock.Close(); CreateInfor.WriteLogs("侦听通道关闭!"); }
static void Main(string[] args) { Tools.IfNotFileCreat(Configs.Path); CreateInfor.WriteLogs("================================================Start======================================================="); if (XML.LoadConfig()) { CreateInfor.WriteLogs("读取配置成功!"); } else { CreateInfor.WriteLogs("读取配置失败,已重置配置,服务结束!"); return; } if (Sql.MainSql()) { CreateInfor.WriteLogs("SqlService数据库连接成功!"); } else { CreateInfor.WriteLogs("SqlService数据库连接失败,服务结束!"); return; } if (Oracle.LinkOracle()) { CreateInfor.WriteLogs("Oracle数据库连接成功!"); } else { CreateInfor.WriteLogs("Oracle数据库连接失败,服务结束!"); return; } // if (UserFaceThread.CreateUser()) CreateInfor.WriteLogs("用户访问通道建立!"); // else { CreateInfor.WriteLogs("用户访问通道创建失败,服务结束!"); return; } if (ClientThread.CreateServiceThread()) { CreateInfor.WriteLogs("侦听通道建立!"); } else { CreateInfor.WriteLogs("侦听通道通道创建失败,服务结束!"); return; } CreateInfor.WriteLogs("服务完全进入运行状态"); }