diff --git a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/.vs/ZTTMS_Manage_yibayiyi_20230320/FileContentIndex/7c838579-5dfa-48dd-a8f0-7eb36a98277e.vsidx b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/.vs/ZTTMS_Manage_yibayiyi_20230320/FileContentIndex/0a783c6d-e612-40d0-9397-239def837107.vsidx similarity index 52% rename from ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/.vs/ZTTMS_Manage_yibayiyi_20230320/FileContentIndex/7c838579-5dfa-48dd-a8f0-7eb36a98277e.vsidx rename to ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/.vs/ZTTMS_Manage_yibayiyi_20230320/FileContentIndex/0a783c6d-e612-40d0-9397-239def837107.vsidx index 0a4f80b..6b2d394 100644 Binary files a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/.vs/ZTTMS_Manage_yibayiyi_20230320/FileContentIndex/7c838579-5dfa-48dd-a8f0-7eb36a98277e.vsidx and b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/.vs/ZTTMS_Manage_yibayiyi_20230320/FileContentIndex/0a783c6d-e612-40d0-9397-239def837107.vsidx differ diff --git a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/.vs/ZTTMS_Manage_yibayiyi_20230320/v17/.suo b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/.vs/ZTTMS_Manage_yibayiyi_20230320/v17/.suo index d31a5a0..cd88dfd 100644 Binary files a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/.vs/ZTTMS_Manage_yibayiyi_20230320/v17/.suo and b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/.vs/ZTTMS_Manage_yibayiyi_20230320/v17/.suo differ diff --git a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/GDFLPortStateForm.cs b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/GDFLPortStateForm.cs index c5625a0..cd3ee59 100644 --- a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/GDFLPortStateForm.cs +++ b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/GDFLPortStateForm.cs @@ -168,7 +168,7 @@ namespace ZTTMS_Manage_yibayiyi_20230320 btnGetNewInfo.Enabled = true; Others.g_socketSendGDFL.Close(); - //Others.g_dicSocketGDFL.Remove(Others.g_ipGDFL); + Others.g_dicSocketGDFL.Remove(Others.g_ipGDFL); PhotoelectricSeparationDataForm.strState = "连接断开"; PhotoelectricSeparationDataForm.change(); @@ -331,7 +331,7 @@ namespace ZTTMS_Manage_yibayiyi_20230320 btnGetNewInfo.Enabled = true; Others.g_socketSendGDFL.Close(); - //Others.g_dicSocketGDFL.Remove(Others.g_ipGDFL); + Others.g_dicSocketGDFL.Remove(Others.g_ipGDFL); PhotoelectricSeparationDataForm.strState = "连接断开"; PhotoelectricSeparationDataForm.change(); diff --git a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/OtherSettingForm.cs b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/OtherSettingForm.cs index fdc7985..6c28b32 100644 --- a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/OtherSettingForm.cs +++ b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/OtherSettingForm.cs @@ -274,7 +274,7 @@ namespace ZTTMS_Manage_yibayiyi_20230320 EveryDayLog.WriteGDFL("光电分离腔请求设备重启失败,错误信息为:" + ex.ToString()); EveryDayLog.WriteErrorGDFL("光电分离腔请求设备重启失败,错误信息为:" + ex.ToString()); - //Others.g_dicSocketGDFL.Remove(Others.g_ipGDFL); + Others.g_dicSocketGDFL.Remove(Others.g_ipGDFL); Others.g_gdflReceive = false; GDFLPortStateForm.strState = "连接断开"; diff --git a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/Others.cs b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/Others.cs index b231fbd..10abffe 100644 --- a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/Others.cs +++ b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/Others.cs @@ -13,11 +13,11 @@ namespace ZTTMS_Manage_yibayiyi_20230320 { class Others { - //public static string g_ipGDFL; + public static string g_ipGDFL; //键值对集合:键为IP地址,值为Socket //将远程连接的客户端的IP地址和端口号存入集合中 - //public static Dictionary g_dicSocketGDFL = new Dictionary(); + public static Dictionary g_dicSocketGDFL = new Dictionary(); public static Socket g_socketSend; //public static TcpClient g_socketSend; diff --git a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/PhotoelectricSeparationDataForm.cs b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/PhotoelectricSeparationDataForm.cs index 94c1bad..9e4a140 100644 --- a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/PhotoelectricSeparationDataForm.cs +++ b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/PhotoelectricSeparationDataForm.cs @@ -58,7 +58,7 @@ namespace ZTTMS_Manage_yibayiyi_20230320 Others.g_gdflReceive = false; - g_ip = "41.244.68.61"; + //g_ip = "41.244.68.61"; //g_ip = "127.0.0.1"; g_port = 55000; @@ -70,27 +70,27 @@ namespace ZTTMS_Manage_yibayiyi_20230320 try { - ////在服务器端创建一个负责IP地址和端口号的Socket - //g_socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); - ////g_socketWatch.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); + //在服务器端创建一个负责IP地址和端口号的Socket + g_socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + //g_socketWatch.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); - ////string ip3 = "192.168.1.240"; - //IPAddress ip2 = IPAddress.Any; - ////创建端口号对象 - //Console.WriteLine("创建端口号对象"); - ////IPEndPoint point = new IPEndPoint(IPAddress.Parse(ip3), g_port); - //IPEndPoint point = new IPEndPoint(ip2, g_port); - ////监听 - //g_socketWatch.Bind(point); - //g_socketWatch.Listen(10); + //string ip3 = "192.168.1.240"; + IPAddress ip2 = IPAddress.Any; + //创建端口号对象 + Console.WriteLine("创建端口号对象"); + //IPEndPoint point = new IPEndPoint(IPAddress.Parse(ip3), g_port); + IPEndPoint point = new IPEndPoint(ip2, g_port); + //监听 + g_socketWatch.Bind(point); + g_socketWatch.Listen(10); - //trdConnect = new Thread(ListenConnect); - //trdConnect.IsBackground = true; - //trdConnect.Start(g_socketWatch); - - trdConnect = new Thread(ListenConnectClient); + trdConnect = new Thread(ListenConnect); trdConnect.IsBackground = true; - trdConnect.Start(); + trdConnect.Start(g_socketWatch); + + //trdConnect = new Thread(ListenConnectClient); + //trdConnect.IsBackground = true; + //trdConnect.Start(); Thread trdDataSplit = new Thread(DataSplit); trdDataSplit.IsBackground = true; @@ -497,7 +497,7 @@ namespace ZTTMS_Manage_yibayiyi_20230320 Others.g_gdflReceive = false; Others.g_socketSendGDFL = null; Others.g_socketSendGDFL.Close(); - //Others.g_dicSocketGDFL.Remove(Others.g_ipGDFL); + Others.g_dicSocketGDFL.Remove(Others.g_ipGDFL); CallInvokeUIUpdate("UpdateState", "连接断开"); GDFLPortStateForm.strState = "连接断开"; @@ -644,230 +644,230 @@ namespace ZTTMS_Manage_yibayiyi_20230320 #region Connnect - //private void ListenConnect(object o) - //{ - // //等待客户端的连接,并且创建与之通信用的Socket - // Socket socketWatch = o as Socket; - // while (true) - // { - // Thread.Sleep(1); - // try - // { - // //负责和客户端通信的Socket - // Others.g_socketSendGDFL = socketWatch.Accept(); - - // Others.g_socketSendGDFL.IOControl(IOControlCode.KeepAliveValues, GetKeepAliveData(), null); - // Others.g_socketSendGDFL.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true); - - // Others.g_ipGDFL = Others.g_socketSendGDFL.RemoteEndPoint.ToString(); - // Console.WriteLine(Others.g_ipGDFL); - - // if (!Others.g_dicSocketGDFL.ContainsKey(Others.g_ipGDFL)) - // { - // //将远程连接的客户端的IP地址和端口号存入集合中 - // Others.g_dicSocketGDFL.Add(Others.g_ipGDFL, Others.g_socketSendGDFL); - // Others.g_gdflReceive = true; - - // Console.WriteLine("新增远程连接:" + Others.g_ipGDFL + "\r" + DateTime.Now); - - // EveryDayLog.WriteGDFL("光电分离腔新增远程连接:" + Others.g_ipGDFL); - - // CallInvokeUIUpdate("UpdatelblIP", "IP:" + Others.g_ipGDFL); - // CallInvokeUIUpdate("UpdatelblState", "连接成功"); - - // GDFLPortStateForm.strState = "连接成功"; - // GDFLPortStateForm.change(); - - - // List list = new List - // { - // Others.g_ipGDFL, - // Others.g_socketSendGDFL - // }; - - // //开启一个新线程不停接收客户端的数据 - // Thread trdReceive = new Thread(DataReceive); - // trdReceive.IsBackground = true; - // trdReceive.Start(list); - // } - // else - // { - // if (!Others.g_dicSocketGDFL[Others.g_ipGDFL].Connected) - // { - // Console.WriteLine(Others.g_ipGDFL + "连接已断开!"); - // try - // { - // Others.g_dicSocketGDFL[Others.g_ipGDFL].Shutdown(SocketShutdown.Both); - // } - // catch - // { - - // } - // finally - // { - // Others.g_dicSocketGDFL[Others.g_ipGDFL].Close(100); - // Others.g_dicSocketGDFL[Others.g_ipGDFL].Dispose(); - // } - // Others.g_dicSocketGDFL.Remove(Others.g_ipGDFL); - - // //将远程连接的客户端的IP地址和端口号存入集合中 - // Others.g_dicSocketGDFL.Add(Others.g_ipGDFL, Others.g_socketSendGDFL); - // Others.g_gdflReceive = true; - - // Console.WriteLine("新增远程连接:" + Others.g_ipGDFL + "\r" + DateTime.Now); - - // CallInvokeUIUpdate("UpdatelblIP", "IP:" + Others.g_ipGDFL); - // CallInvokeUIUpdate("UpdatelblState", "连接成功"); - - // GDFLPortStateForm.strState = "连接成功"; - // GDFLPortStateForm.change(); - - // ////根据1min内接收到的心跳包数量判断连接是否正常 - // //timerCheckConnectState.Interval = 60 * 1000; - // //timerCheckConnectState.Enabled = true; - // //timerCheckConnectState.Start(); - // //EveryDayLog.WriteGDFL("定时器(判断接收到的心跳包数量是否正常)已开启!"); - - // ////开启一个新线程不停接收客户端的数据 - // //Thread trdReceive = new Thread(DataReceive); - // //trdReceive.IsBackground = true; - // //trdReceive.Start(Others.g_socketSendGDFL); - - // List list = new List - // { - // Others.g_ipGDFL, - // Others.g_socketSendGDFL - // }; - - // //开启一个新线程不停接收客户端的数据 - // Thread trdReceive = new Thread(DataReceive); - // trdReceive.IsBackground = true; - // trdReceive.Start(list); - - // continue; - // } - - // else if (Others.g_dicSocketGDFL[Others.g_ipGDFL].Poll(1000, SelectMode.SelectRead)) - // { - // try - // { - // Others.g_dicSocketGDFL[Others.g_ipGDFL].Shutdown(SocketShutdown.Both); - // } - // catch - // { - - // } - // finally - // { - // Others.g_dicSocketGDFL[Others.g_ipGDFL].Close(100); - // Others.g_dicSocketGDFL[Others.g_ipGDFL].Dispose(); - // } - // Others.g_dicSocketGDFL.Remove(Others.g_ipGDFL); - // Others.g_gdflReceive = false; - // Console.WriteLine("ListenConnectError移除远程连接:" + Others.g_ipGDFL + "\r" + DateTime.Now); - // CallInvokeUIUpdate("UpdatelblState", "连接断开"); - - // GDFLPortStateForm.strState = "连接断开"; - // GDFLPortStateForm.change(); - - // //将远程连接的客户端的IP地址和端口号存入集合中 - // Others.g_dicSocketGDFL.Add(Others.g_ipGDFL, Others.g_socketSendGDFL); - // Others.g_gdflReceive = true; - - // Console.WriteLine("新增远程连接:" + Others.g_ipGDFL + "\r" + DateTime.Now); - - // CallInvokeUIUpdate("UpdatelblIP", "IP:" + Others.g_ipGDFL); - // CallInvokeUIUpdate("UpdatelblState", "连接成功"); - - // GDFLPortStateForm.strState = "连接成功"; - // GDFLPortStateForm.change(); - - // ////根据1min内接收到的心跳包数量判断连接是否正常 - // //timerCheckConnectState.Interval = 60 * 1000; - // //timerCheckConnectState.Enabled = true; - // //timerCheckConnectState.Start(); - // //EveryDayLog.WriteGDFL("定时器(判断接收到的心跳包数量是否正常)已开启!"); - - // ////开启一个新线程不停接收客户端的数据 - // //Thread trdReceive = new Thread(DataReceive); - // //trdReceive.IsBackground = true; - // //trdReceive.Start(Others.g_socketSendGDFL); - - // List list = new List - // { - // Others.g_ipGDFL, - // Others.g_socketSendGDFL - // }; - - // //开启一个新线程不停接收客户端的数据 - // Thread trdReceive = new Thread(DataReceive); - // trdReceive.IsBackground = true; - // trdReceive.Start(list); - - // continue; - // } - // } - // } - // catch (Exception ex) - // { - // Console.WriteLine("GDFLListenConnectError:" + ex.Message); - // EveryDayLog.WriteErrorGDFL("GDFLListenConnectError:" + ex.Message); - - // Console.WriteLine(Others.g_ipGDFL + "连接已断开!"); - // try - // { - // Others.g_dicSocketGDFL[Others.g_ipGDFL].Shutdown(SocketShutdown.Both); - // } - // catch - // { - - // } - // finally - // { - // Others.g_dicSocketGDFL[Others.g_ipGDFL].Close(100); - // Others.g_dicSocketGDFL[Others.g_ipGDFL].Dispose(); - // } - // Others.g_dicSocketGDFL.Remove(Others.g_ipGDFL); - // } - // } - //} - - private bool Connect(string ip, int port) + private void ListenConnect(object o) { - if (Others.g_gdflReceive == true) + //等待客户端的连接,并且创建与之通信用的Socket + Socket socketWatch = o as Socket; + while (true) { - Console.WriteLine("光电分离腔连接中,无需再连接!"); - return true; + Thread.Sleep(1); + try + { + //负责和客户端通信的Socket + Others.g_socketSendGDFL = socketWatch.Accept(); + + Others.g_socketSendGDFL.IOControl(IOControlCode.KeepAliveValues, GetKeepAliveData(), null); + Others.g_socketSendGDFL.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true); + + Others.g_ipGDFL = Others.g_socketSendGDFL.RemoteEndPoint.ToString(); + Console.WriteLine(Others.g_ipGDFL); + + if (!Others.g_dicSocketGDFL.ContainsKey(Others.g_ipGDFL)) + { + //将远程连接的客户端的IP地址和端口号存入集合中 + Others.g_dicSocketGDFL.Add(Others.g_ipGDFL, Others.g_socketSendGDFL); + Others.g_gdflReceive = true; + + Console.WriteLine("新增远程连接:" + Others.g_ipGDFL + "\r" + DateTime.Now); + + EveryDayLog.WriteGDFL("光电分离腔新增远程连接:" + Others.g_ipGDFL); + + CallInvokeUIUpdate("UpdatelblIP", "IP:" + Others.g_ipGDFL); + CallInvokeUIUpdate("UpdatelblState", "连接成功"); + + GDFLPortStateForm.strState = "连接成功"; + GDFLPortStateForm.change(); + + + List list = new List + { + Others.g_ipGDFL, + Others.g_socketSendGDFL + }; + + //开启一个新线程不停接收客户端的数据 + Thread trdReceive = new Thread(DataReceive); + trdReceive.IsBackground = true; + trdReceive.Start(list); + } + else + { + if (!Others.g_dicSocketGDFL[Others.g_ipGDFL].Connected) + { + Console.WriteLine(Others.g_ipGDFL + "连接已断开!"); + try + { + Others.g_dicSocketGDFL[Others.g_ipGDFL].Shutdown(SocketShutdown.Both); + } + catch + { + + } + finally + { + Others.g_dicSocketGDFL[Others.g_ipGDFL].Close(100); + Others.g_dicSocketGDFL[Others.g_ipGDFL].Dispose(); + } + Others.g_dicSocketGDFL.Remove(Others.g_ipGDFL); + + //将远程连接的客户端的IP地址和端口号存入集合中 + Others.g_dicSocketGDFL.Add(Others.g_ipGDFL, Others.g_socketSendGDFL); + Others.g_gdflReceive = true; + + Console.WriteLine("新增远程连接:" + Others.g_ipGDFL + "\r" + DateTime.Now); + + CallInvokeUIUpdate("UpdatelblIP", "IP:" + Others.g_ipGDFL); + CallInvokeUIUpdate("UpdatelblState", "连接成功"); + + GDFLPortStateForm.strState = "连接成功"; + GDFLPortStateForm.change(); + + ////根据1min内接收到的心跳包数量判断连接是否正常 + //timerCheckConnectState.Interval = 60 * 1000; + //timerCheckConnectState.Enabled = true; + //timerCheckConnectState.Start(); + //EveryDayLog.WriteGDFL("定时器(判断接收到的心跳包数量是否正常)已开启!"); + + ////开启一个新线程不停接收客户端的数据 + //Thread trdReceive = new Thread(DataReceive); + //trdReceive.IsBackground = true; + //trdReceive.Start(Others.g_socketSendGDFL); + + List list = new List + { + Others.g_ipGDFL, + Others.g_socketSendGDFL + }; + + //开启一个新线程不停接收客户端的数据 + Thread trdReceive = new Thread(DataReceive); + trdReceive.IsBackground = true; + trdReceive.Start(list); + + continue; + } + + else if (Others.g_dicSocketGDFL[Others.g_ipGDFL].Poll(1000, SelectMode.SelectRead)) + { + try + { + Others.g_dicSocketGDFL[Others.g_ipGDFL].Shutdown(SocketShutdown.Both); + } + catch + { + + } + finally + { + Others.g_dicSocketGDFL[Others.g_ipGDFL].Close(100); + Others.g_dicSocketGDFL[Others.g_ipGDFL].Dispose(); + } + Others.g_dicSocketGDFL.Remove(Others.g_ipGDFL); + Others.g_gdflReceive = false; + Console.WriteLine("ListenConnectError移除远程连接:" + Others.g_ipGDFL + "\r" + DateTime.Now); + CallInvokeUIUpdate("UpdatelblState", "连接断开"); + + GDFLPortStateForm.strState = "连接断开"; + GDFLPortStateForm.change(); + + //将远程连接的客户端的IP地址和端口号存入集合中 + Others.g_dicSocketGDFL.Add(Others.g_ipGDFL, Others.g_socketSendGDFL); + Others.g_gdflReceive = true; + + Console.WriteLine("新增远程连接:" + Others.g_ipGDFL + "\r" + DateTime.Now); + + CallInvokeUIUpdate("UpdatelblIP", "IP:" + Others.g_ipGDFL); + CallInvokeUIUpdate("UpdatelblState", "连接成功"); + + GDFLPortStateForm.strState = "连接成功"; + GDFLPortStateForm.change(); + + ////根据1min内接收到的心跳包数量判断连接是否正常 + //timerCheckConnectState.Interval = 60 * 1000; + //timerCheckConnectState.Enabled = true; + //timerCheckConnectState.Start(); + //EveryDayLog.WriteGDFL("定时器(判断接收到的心跳包数量是否正常)已开启!"); + + ////开启一个新线程不停接收客户端的数据 + //Thread trdReceive = new Thread(DataReceive); + //trdReceive.IsBackground = true; + //trdReceive.Start(Others.g_socketSendGDFL); + + List list = new List + { + Others.g_ipGDFL, + Others.g_socketSendGDFL + }; + + //开启一个新线程不停接收客户端的数据 + Thread trdReceive = new Thread(DataReceive); + trdReceive.IsBackground = true; + trdReceive.Start(list); + + continue; + } + } + } + catch (Exception ex) + { + Console.WriteLine("GDFLListenConnectError:" + ex.Message); + EveryDayLog.WriteErrorGDFL("GDFLListenConnectError:" + ex.Message); + + Console.WriteLine(Others.g_ipGDFL + "连接已断开!"); + try + { + Others.g_dicSocketGDFL[Others.g_ipGDFL].Shutdown(SocketShutdown.Both); + } + catch + { + + } + finally + { + Others.g_dicSocketGDFL[Others.g_ipGDFL].Close(100); + Others.g_dicSocketGDFL[Others.g_ipGDFL].Dispose(); + } + Others.g_dicSocketGDFL.Remove(Others.g_ipGDFL); + } } - - Others.g_socketSendGDFL = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); - try - { - Others.g_socketSendGDFL.IOControl(IOControlCode.KeepAliveValues, GetKeepAliveData(), null); - Others.g_socketSendGDFL.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true); - - IPEndPoint point = new IPEndPoint(IPAddress.Parse(ip), port); - Others.g_socketSendGDFL.Connect(point); - - Others.g_gdflReceive = true; - } - catch (Exception ex) - { - Console.WriteLine("光电分离腔服务器未开启:" + ex.Message); - EveryDayLog.WriteGDFL("光电分离腔服务器未开启:" + ex.Message); - waitReConnect = false; - lblConnectState.Text = "服务器未开启"; - Others.g_gdflReceive = false; - return false; - } - - Console.WriteLine("光电分离腔已连接服务器!"); - EveryDayLog.WriteGDFL("光电分离腔已连接服务器!"); - waitReConnect = true; - Others.g_gdflReceive = true; - return true; } + //private bool Connect(string ip, int port) + //{ + // if (Others.g_gdflReceive == true) + // { + // Console.WriteLine("光电分离腔连接中,无需再连接!"); + // return true; + // } + + // Others.g_socketSendGDFL = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + // try + // { + // Others.g_socketSendGDFL.IOControl(IOControlCode.KeepAliveValues, GetKeepAliveData(), null); + // Others.g_socketSendGDFL.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true); + + // IPEndPoint point = new IPEndPoint(IPAddress.Parse(ip), port); + // Others.g_socketSendGDFL.Connect(point); + + // Others.g_gdflReceive = true; + // } + // catch (Exception ex) + // { + // Console.WriteLine("光电分离腔服务器未开启:" + ex.Message); + // EveryDayLog.WriteGDFL("光电分离腔服务器未开启:" + ex.Message); + // waitReConnect = false; + // lblConnectState.Text = "服务器未开启"; + // Others.g_gdflReceive = false; + // return false; + // } + + // Console.WriteLine("光电分离腔已连接服务器!"); + // EveryDayLog.WriteGDFL("光电分离腔已连接服务器!"); + // waitReConnect = true; + // Others.g_gdflReceive = true; + // return true; + //} + private byte[] GetKeepAliveData() { uint dummy = 0; @@ -878,166 +878,166 @@ namespace ZTTMS_Manage_yibayiyi_20230320 return inOptionValues; } - private bool WaitReConnect(string ip, int port) - { - waitReConnect = false; + //private bool WaitReConnect(string ip, int port) + //{ + // waitReConnect = false; - Console.WriteLine("光电分离腔开始进行三次握手!"); + // Console.WriteLine("光电分离腔开始进行三次握手!"); - try - { - //进行三次握手 - for (int i = 0; i < 3; i++) - { - waitReConnect = Connect(ip, port); - DateTime time = DateTime.Now; - while ((DateTime.Now - time).TotalSeconds < 5 && !waitReConnect) - { - Thread.Sleep(1); - } + // try + // { + // //进行三次握手 + // for (int i = 0; i < 3; i++) + // { + // waitReConnect = Connect(ip, port); + // DateTime time = DateTime.Now; + // while ((DateTime.Now - time).TotalSeconds < 5 && !waitReConnect) + // { + // Thread.Sleep(1); + // } - if (waitReConnect == true) - { - Console.WriteLine("连接成功!"); + // if (waitReConnect == true) + // { + // Console.WriteLine("连接成功!"); - Others.g_gdflReceive = true; + // Others.g_gdflReceive = true; - lblConnectState.Text = "连接成功"; - return true; - } + // lblConnectState.Text = "连接成功"; + // return true; + // } - if (Others.g_gdflReceive == true) - { - Console.WriteLine("连接中,无需再连接!"); - return true; - } + // if (Others.g_gdflReceive == true) + // { + // Console.WriteLine("连接中,无需再连接!"); + // return true; + // } - Console.WriteLine(i + 1 + ":超时5s重连!"); - lblConnectState.Text = "超时重连"; + // Console.WriteLine(i + 1 + ":超时5s重连!"); + // lblConnectState.Text = "超时重连"; - Others.g_gdflReceive = false; - Others.g_socketSendGDFL = null; - } - Console.WriteLine("光电分离腔三次都没有超时重连成功!"); - lblConnectState.Text = "超时重连3次失败"; - Others.g_gdflReceive = false; + // Others.g_gdflReceive = false; + // Others.g_socketSendGDFL = null; + // } + // Console.WriteLine("光电分离腔三次都没有超时重连成功!"); + // lblConnectState.Text = "超时重连3次失败"; + // Others.g_gdflReceive = false; - string message = "无法与光电分离腔建立连接"; - reConnectTime++; + // string message = "无法与光电分离腔建立连接"; + // reConnectTime++; - if (reConnectTime >= 5) - { - reConnectTime = 0; + // if (reConnectTime >= 5) + // { + // reConnectTime = 0; - g_sqlRecordTime = DateTime.Now; - int cycleTime = 0; + // g_sqlRecordTime = DateTime.Now; + // int cycleTime = 0; - while (cycleTime < 3) - { - string sqlId = IdHelper.GetId(); - int num = 0; + // while (cycleTime < 3) + // { + // string sqlId = IdHelper.GetId(); + // int num = 0; - string sql = $"insert into tb_gdflstateinfo_data(id,record_time,equipment_type,equipment_id,version_number,error_code) " + - $"values('{sqlId}','{g_sqlRecordTime}','{g_sqlTerminalEquipmentType}','{g_sqlTerminalEquipmentId}','{g_sqlVersionNumber}','{message}');"; + // string sql = $"insert into tb_gdflstateinfo_data(id,record_time,equipment_type,equipment_id,version_number,error_code) " + + // $"values('{sqlId}','{g_sqlRecordTime}','{g_sqlTerminalEquipmentType}','{g_sqlTerminalEquipmentId}','{g_sqlVersionNumber}','{message}');"; - try - { - num = MySQL.ExecuteSql(sql); - } - catch (Exception ex) - { - Console.WriteLine("LinkStateError:" + ex.ToString()); - EveryDayLog.WriteErrorGDFL("光电分离腔存储连接状态错误:" + ex.Message); - } + // try + // { + // num = MySQL.ExecuteSql(sql); + // } + // catch (Exception ex) + // { + // Console.WriteLine("LinkStateError:" + ex.ToString()); + // EveryDayLog.WriteErrorGDFL("光电分离腔存储连接状态错误:" + ex.Message); + // } - if (num > 0) - { - Console.WriteLine("光电分离腔连接状态插入成功!" + DateTime.Now); - break; - } - else - { - Console.WriteLine("光电分离腔连接状态插入失败,重新进行插入!" + DateTime.Now); - EveryDayLog.WriteErrorGDFL("光电分离腔连接状态插入失败,重新进行插入!"); - } + // if (num > 0) + // { + // Console.WriteLine("光电分离腔连接状态插入成功!" + DateTime.Now); + // break; + // } + // else + // { + // Console.WriteLine("光电分离腔连接状态插入失败,重新进行插入!" + DateTime.Now); + // EveryDayLog.WriteErrorGDFL("光电分离腔连接状态插入失败,重新进行插入!"); + // } - cycleTime++; - Thread.Sleep(1); - } - } - } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - EveryDayLog.WriteErrorGDFL("WaitReConnectError:" + ex.Message); - } + // cycleTime++; + // Thread.Sleep(1); + // } + // } + // } + // catch (Exception ex) + // { + // Console.WriteLine(ex.Message); + // EveryDayLog.WriteErrorGDFL("WaitReConnectError:" + ex.Message); + // } - return false; - } + // return false; + //} - public void ConnectDispose() - { - if (Others.g_socketSendGDFL == null) - { - EveryDayLog.WriteGDFL("光电分离腔的通信连接已断开!"); + //public void ConnectDispose() + //{ + // if (Others.g_socketSendGDFL == null) + // { + // EveryDayLog.WriteGDFL("光电分离腔的通信连接已断开!"); - return; - } + // return; + // } - if (Others.g_socketSendGDFL.Connected) - { - Others.g_socketSendGDFL.Close(); - Others.g_socketSendGDFL.Dispose(); + // if (Others.g_socketSendGDFL.Connected) + // { + // Others.g_socketSendGDFL.Close(); + // Others.g_socketSendGDFL.Dispose(); - Others.g_gdflReceive = false; - Others.g_socketSendGDFL = null; - } + // Others.g_gdflReceive = false; + // Others.g_socketSendGDFL = null; + // } - EveryDayLog.WriteGDFL("光电分离腔的通信连接已断开!"); - } + // EveryDayLog.WriteGDFL("光电分离腔的通信连接已断开!"); + //} - private void ListenConnectClient() - { - while (true) - { - if (Others.g_gdflReceive == false || Others.g_socketSendGDFL == null || !Others.g_socketSendGDFL.Connected) - { - Others.g_gdflReceive = false; + //private void ListenConnectClient() + //{ + // while (true) + // { + // if (Others.g_gdflReceive == false || Others.g_socketSendGDFL == null || !Others.g_socketSendGDFL.Connected) + // { + // Others.g_gdflReceive = false; - bool result = WaitReConnect(g_ip, g_port); + // bool result = WaitReConnect(g_ip, g_port); - Console.WriteLine("光电分离腔连接情况:" + result); + // Console.WriteLine("光电分离腔连接情况:" + result); - if (result) - { - Others.g_gdflReceive = true; + // if (result) + // { + // Others.g_gdflReceive = true; - CallInvokeUIUpdate("UpdatelblIP", "IP:" + g_ip); - CallInvokeUIUpdate("UpdatelblState", "连接成功"); + // CallInvokeUIUpdate("UpdatelblIP", "IP:" + g_ip); + // CallInvokeUIUpdate("UpdatelblState", "连接成功"); - //timerCheckConnectState.Enabled = true; - //timerCheckConnectState.Interval = 60 * 1000; - //timerCheckConnectState.Stop(); + // //timerCheckConnectState.Enabled = true; + // //timerCheckConnectState.Interval = 60 * 1000; + // //timerCheckConnectState.Stop(); - //开启一个新线程不停接收客户端的数据 - Thread trdReceive = new Thread(DataReceive); - trdReceive.IsBackground = true; - trdReceive.Start(Others.g_socketSendGDFL); - } - else - { - CallInvokeUIUpdate("UpdatelblState", "连接失败"); - Others.g_gdflReceive = false; - } + // //开启一个新线程不停接收客户端的数据 + // Thread trdReceive = new Thread(DataReceive); + // trdReceive.IsBackground = true; + // trdReceive.Start(Others.g_socketSendGDFL); + // } + // else + // { + // CallInvokeUIUpdate("UpdatelblState", "连接失败"); + // Others.g_gdflReceive = false; + // } - EveryDayLog.WriteGDFL("光电分离腔连接,连接状态:" + lblConnectState.Text); - } - else - { - Thread.Sleep(1); - } - } - } + // EveryDayLog.WriteGDFL("光电分离腔连接,连接状态:" + lblConnectState.Text); + // } + // else + // { + // Thread.Sleep(1); + // } + // } + //} #endregion @@ -1140,22 +1140,22 @@ namespace ZTTMS_Manage_yibayiyi_20230320 Console.WriteLine("GDFLReceiveError:" + ex.Message); EveryDayLog.WriteErrorGDFL("GDFLReceiveError:" + ex.Message); - //try - //{ - // Others.g_dicSocketGDFL[Others.g_ipGDFL].Shutdown(SocketShutdown.Both); - //} - //catch - //{ + try + { + Others.g_dicSocketGDFL[Others.g_ipGDFL].Shutdown(SocketShutdown.Both); + } + catch + { - //} - //finally - //{ - // Others.g_dicSocketGDFL[Others.g_ipGDFL].Close(100); - // Others.g_dicSocketGDFL[Others.g_ipGDFL].Dispose(); - //} + } + finally + { + Others.g_dicSocketGDFL[Others.g_ipGDFL].Close(100); + Others.g_dicSocketGDFL[Others.g_ipGDFL].Dispose(); + } - //Console.WriteLine(Others.g_ipGDFL + "连接已断开!"); - //Others.g_dicSocketGDFL.Remove(Others.g_ipGDFL); + Console.WriteLine(Others.g_ipGDFL + "连接已断开!"); + Others.g_dicSocketGDFL.Remove(Others.g_ipGDFL); Others.g_gdflReceive = false; Others.g_socketSendGDFL = null; @@ -1165,7 +1165,7 @@ namespace ZTTMS_Manage_yibayiyi_20230320 GDFLPortStateForm.strState = "连接断开"; GDFLPortStateForm.change(); - ConnectDispose(); + //ConnectDispose(); } } } diff --git a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/bin/Debug/ZTTMS_Manage_yibayiyi_20230320.exe b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/bin/Debug/ZTTMS_Manage_yibayiyi_20230320.exe index 89ee5d6..39f72a1 100644 Binary files a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/bin/Debug/ZTTMS_Manage_yibayiyi_20230320.exe and b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/bin/Debug/ZTTMS_Manage_yibayiyi_20230320.exe differ diff --git a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/bin/Debug/ZTTMS_Manage_yibayiyi_20230320.pdb b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/bin/Debug/ZTTMS_Manage_yibayiyi_20230320.pdb index adb6612..e101554 100644 Binary files a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/bin/Debug/ZTTMS_Manage_yibayiyi_20230320.pdb and b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/bin/Debug/ZTTMS_Manage_yibayiyi_20230320.pdb differ diff --git a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/obj/Debug/ZTTMS_Manage_yibayiyi_20230320.exe b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/obj/Debug/ZTTMS_Manage_yibayiyi_20230320.exe index 89ee5d6..39f72a1 100644 Binary files a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/obj/Debug/ZTTMS_Manage_yibayiyi_20230320.exe and b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/obj/Debug/ZTTMS_Manage_yibayiyi_20230320.exe differ diff --git a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/obj/Debug/ZTTMS_Manage_yibayiyi_20230320.pdb b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/obj/Debug/ZTTMS_Manage_yibayiyi_20230320.pdb index adb6612..e101554 100644 Binary files a/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/obj/Debug/ZTTMS_Manage_yibayiyi_20230320.pdb and b/ZTTMS_Manage_yibayiyi_KeepaliveTest3_GKJ_V1.1/ZTTMS_Manage_yibayiyi_20230320/obj/Debug/ZTTMS_Manage_yibayiyi_20230320.pdb differ