using System; using System.IO; using System.Configuration; using System.ComponentModel; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Net; using System.Net.NetworkInformation; using System.Net.Sockets; using System.Windows.Forms; using SocketTransfer.SDK; namespace SocketReceive { public partial class Receiver : Form { protected string _OracleConnStr = ConfigurationManager.AppSettings["OracleConnStr"].ToString(); protected string _ConnectString = ConfigurationManager.AppSettings["ConnectString"].ToString(); //日常营收上传地址 protected string _HostIP = ConfigurationManager.AppSettings["HostIP"].ToString(); protected string _HostPort = ConfigurationManager.AppSettings["HostPort"].ToString(); public Receiver() { InitializeComponent(); } #region 方法 -> 启动/停止监听 bool isStart = false; private void BtnListen_Click(object sender, EventArgs e) { try { if (!isStart) { //socketor1.Start(new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[0]), int.Parse(_HostPort.Split(',')[0]))); //socketor2.Start(new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[1]), int.Parse(_HostPort.Split(',')[1]))); //socketor3.Start(new IPEndPoint(IPAddress.Parse(_HostIP.Split(',')[2]), int.Parse(_HostPort.Split(',')[2]))); socketor1.Start(new IPEndPoint(IPAddress.Any, int.Parse(_HostPort.Split(',')[0]))); socketor2.Start(new IPEndPoint(IPAddress.Any, int.Parse(_HostPort.Split(',')[1]))); socketor3.Start(new IPEndPoint(IPAddress.Any, int.Parse(_HostPort.Split(',')[2]))); BtnListen.Text = "停止"; isStart = true; return; } if (isStart) { socketor1.Stop(); socketor2.Stop(); socketor3.Stop(); BtnListen.Text = "监听"; isStart = false; return; } } catch (Exception ex) { MessageBox.Show(ex.Message); } } #endregion #region 方法 -> 功能加载 private void Receiver_Load(object sender, EventArgs e) { string strIPAddress = string.Empty; IPAddress[] arrIPAddresses = System.Net.Dns.GetHostAddresses(System.Net.Dns.GetHostName()); foreach (IPAddress _IPAddress in arrIPAddresses) { if (!_IPAddress.AddressFamily.Equals(AddressFamily.InterNetwork)) { continue; } strIPAddress = _IPAddress.ToString(); break; } if (!string.IsNullOrEmpty(strIPAddress)) { textBoxIP.Text = strIPAddress; } else { textBoxIP.Text = "127.0.0.1"; } textBoxIP.Text = strIPAddress; textBoxPort.Text = "6060"; BtnListen_Click(BtnListen, e); } #endregion #region 监听1 -> socketor1_Receive private void socketor1_Receive(object sender, SocketEventArgs e) { ListenInfo(e); } #endregion #region 监听2 -> socketor2_Receive private void socketor2_Receive(object sender, SocketEventArgs e) { ListenInfo(e); } #endregion #region 监听3 -> Socketor3_Receive private void Socketor3_Receive(object sender, SocketEventArgs e) { ListenInfo(e); } #endregion #region 方法 -> 监听事件 protected void ListenInfo(SocketEventArgs e) { int _ReceiveType = 0; string[] Files = null; try { if (e.Buffer == null) { return; } Files = (string[])EventsCommodityNew.BytesToObject(e.Buffer); if (Files != null && Files.Length > 0) { _ReceiveType = int.Parse(Files[0]); LogHelper.WriteReceiveLog(string.Join(",", (string[])EventsCommodityNew.BytesToObject(e.Buffer)), "日志_Receive" + DateTime.Now.ToString("yyyyMMdd"), true); if (_ReceiveType != 100 && _ReceiveType != 62 && _ReceiveType != 63 && _ReceiveType != 64 && _ReceiveType != 65 && _ReceiveType != 70) { #if DEBUG string dir = Application.StartupPath + "//Log"; string fil = dir + "//" + CommonHelperNew.GetSendType(_ReceiveType) + "Listen" + DateTime.Now.ToString("yyyyMMdd") + ".log"; if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } LogHelper.DeleteFiles("*.log", dir, -15); FileStream filestream = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer = new StreamWriter(filestream, System.Text.Encoding.UTF8); writer.BaseStream.Seek(0, SeekOrigin.End); writer.WriteLine("{0}", DateTime.Now + ":ReceiveType[" + CommonHelperNew.GetSendType(_ReceiveType) + "],Primary key[" + Files[1] + "],Size[" + Files.Length + "]"); writer.Flush(); writer.Close(); filestream.Close(); #endif } switch (_ReceiveType) { case 0: #region 结账数据 if (string.IsNullOrEmpty(Files[3]) || string.IsNullOrEmpty(Files[2])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.InsertEndAccount(_ConnectString, Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } break; #endregion case 1: #region 销售流水集合 propertyGrid1.SelectedObject = Files; if (CommonHelperNew.InsertTransfer_Selldata(Files) && Files.Length > 0) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } break; #endregion case 2: #region 收银员报表 if (string.IsNullOrEmpty(Files[5]) || string.IsNullOrEmpty(Files[6])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.InsertPersonsell(_ConnectString, Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } break; #endregion case 3: #region 单品集合 if (string.IsNullOrEmpty(Files[4]) || string.IsNullOrEmpty(Files[5]) || string.IsNullOrEmpty(Files[18]) || string.IsNullOrEmpty(Files[19]) || string.IsNullOrEmpty(Files[20])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.InsertTransfer_Sale(_ConnectString, Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } break; #endregion case 4: #region 推送营收数据 if (string.IsNullOrEmpty(Files[41])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.InsertWeChatPushDetail(Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } break; #endregion case 5: #region 推送单品数据 if (string.IsNullOrEmpty(Files[15])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.InsertWeChatPushSale(Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } break; #endregion case 6: #region HIGHWAY_EXCHANGE.T_DATACOLLECTION 数据采集(门店版) if (string.IsNullOrEmpty(Files[15]) || string.IsNullOrEmpty(Files[2]) || string.IsNullOrEmpty(Files[5])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.Insert_DataCollectionShop(Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } break; #endregion case 7: #region 服务区数据 propertyGrid1.SelectedObject = Files; if (CommonHelperNew.InsertServerpart(Files) && Files.Length > 0) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } break; #endregion case 8: #region 门店数据 propertyGrid1.SelectedObject = Files; if (CommonHelperNew.InsertServerpartShop(Files) && Files.Length > 0) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } break; #endregion case 9: #region 系统日志 propertyGrid1.SelectedObject = Files; if (CommonHelperNew.InsertWinSystemLog(Files) && Files.Length > 0) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } break; #endregion case 10: #region 平台用户数据 propertyGrid1.SelectedObject = Files; if (Files[Files.Length - 1] == "1" || Files[Files.Length - 1] == "0") { if (Files[Files.Length - 1] == "1") { //新增、更新 if (CommonHelperNew.InsertUser(Files) && Files.Length > 0) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } } else { //删除 if (CommonHelperNew.DeleteUser(Files) && Files.Length > 0) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } } } break; #endregion case 11: #region 平台用户分类数据 propertyGrid1.SelectedObject = Files; if (CommonHelperNew.InsertUserType(Files) && Files.Length > 0) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } break; #endregion case 12: #region 省份机器信息 propertyGrid1.SelectedObject = Files; if (Files[Files.Length - 1] == "1" || Files[Files.Length - 1] == "0") { if (Files[Files.Length - 1] == "1") { //新增、更新 if (CommonHelperNew.InsertMachinemanage(Files) && Files.Length > 0) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } } else { //删除 if (CommonHelperNew.DeleteMachinemanage(Files) && Files.Length > 0) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } } } break; #endregion case 13: #region HIGHWAY_EXCHANGE.T_CUSTOMERINFO if (string.IsNullOrEmpty(Files[1]) || string.IsNullOrEmpty(Files[2]) || string.IsNullOrEmpty(Files[4])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.Insert_CustomerInfo(Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } #endregion break; case 14: #region HIGHWAY_EXCHANGE.T_PASSENGERFLOW if (string.IsNullOrEmpty(Files[1]) || string.IsNullOrEmpty(Files[2])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.Insert_PassengerFlow(Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } #endregion break; case 15: #region HIGHWAY_EXCHANGE.T_VEHICLEFLOW if (string.IsNullOrEmpty(Files[1]) || string.IsNullOrEmpty(Files[2])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.Insert_VehicleFlow(Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } #endregion break; case 16: #region HIGHWAY_EXCHANGE.T_SATISFACTIONFLOW(暂未启用) if (string.IsNullOrEmpty(Files[1])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.Insert_SatisfactionFlow(Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } #endregion break; case 17: #region HIGHWAY_EXCHANGE.T_SATISFACTIONFLOW(DAY) if (string.IsNullOrEmpty(Files[1]) || string.IsNullOrEmpty(Files[2])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.Insert_SatisfactionFlowDay(Files)) { //e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); //string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); //propertyGrid2.SelectedObject = backFiles; } #endregion break; case 18: #region HIGHWAY_EXCHANGE.T_DATACOLLECTION 数据采集(服务区版) if (string.IsNullOrEmpty(Files[1]) || string.IsNullOrEmpty(Files[2])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.Insert_DataCollectionServerPart(Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } break; #endregion case 20: #region 结账数据 新表 if (string.IsNullOrEmpty(Files[7]) || string.IsNullOrEmpty(Files[8])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.InsertEndAccount_New(_ConnectString, Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } break; #endregion case 21: #region 收银员报表 if (string.IsNullOrEmpty(Files[6]) || string.IsNullOrEmpty(Files[7])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.InsertPersonsell_New(_ConnectString, Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } break; #endregion case 23: #region HIGHWAY_EXCHANGE.T_COMMODITYEX_NEW if (string.IsNullOrEmpty(Files[2])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.InsertCommodityex_new(Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } #endregion break; case 24: #region HIGHWAY_EXCHANGE.T_UPLOADSTATISTICS if (string.IsNullOrEmpty(Files[1])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.InsertTransferstatistics(Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } #endregion break; case 25: #region HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR if (string.IsNullOrEmpty(Files[1])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.InsertCommoditysale_extar(Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } #endregion break; case 26: case 27: #region HIGHWAY_EXCHANGE.T_MOBILE_PAY if (string.IsNullOrEmpty(Files[1]) || string.IsNullOrEmpty(Files[7]) || string.IsNullOrEmpty(Files[8])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.Insert_Mobile_pay(Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } #endregion break; case 61: #region 服务器门店数据删除 propertyGrid1.SelectedObject = Files; if (CommonHelperNew.DeleteServerData(Files) && Files.Length > 0) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } #endregion break; case 62: case 63: case 64: case 65: #region 服务器门店数据返回 propertyGrid1.SelectedObject = Files; string[] backFilesALL = CommonHelperNew.SelectServerData(Files); if (backFilesALL != null && backFilesALL.Length > 0) { e.Feedback = EventsCommodityNew.ObjectToBytes(backFilesALL); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } break; #endregion case 70: #region 下发执行语句 try { propertyGrid1.SelectedObject = Files; OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]); string SQLString = "SELECT * FROM HIGHWAY_EXCHANGE.T_EXECUTESQL WHERE NVL(SERVERPARTCODE,'" + Files[1] + "') LIKE '%" + Files[1] + "%' AND NVL(EXECUTESQL_DATE,SYSDATE) <= SYSDATE AND EXECUTESQL_STATE = 1"; foreach (DataRow _DataRow in _OracleHelper.ExcuteSqlGetDataSet(SQLString).Tables[0].Rows) { string[] BackFile = new string[4]; SQLString = "SELECT * FROM HIGHWAY_EXCHANGE.T_EXECUTEFEEDBAK WHERE SERVERPARTCODE = '" + Files[1] + "' AND EXECUTESQL_ID = " + _DataRow["EXECUTESQL_ID"].ToString(); DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(SQLString).Tables[0]; if (_DataTable.Rows.Count > 0) { if (_DataTable.Rows[0]["EXECUTEFEEDBAK_STATE"].ToString() == "" || int.Parse(_DataTable.Rows[0]["EXECUTEFEEDBAK_STATE"].ToString()) < 2) { BackFile[0] = Files[0]; BackFile[1] = _DataTable.Rows[0]["EXECUTEFEEDBAK_ID"].ToString(); BackFile[2] = _DataTable.Rows[0]["SERVERPARTCODE"].ToString(); BackFile[3] = _DataRow["EXECUTESQL_CONTENT"].ToString(); } } else { string _EXECUTEFEEDBAK_ID = _OracleHelper.ExcuteSqlGetDataSet( "SELECT HIGHWAY_EXCHANGE.SEQ_EXECUTEFEEDBAK.NEXTVAL FROM DUAL").Tables[0].Rows[0][0].ToString(); SQLString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_EXECUTEFEEDBAK ( EXECUTEFEEDBAK_ID,EXECUTESQL_ID,SERVERPARTCODE) VALUES ({0},{1},{2})", CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, _EXECUTEFEEDBAK_ID), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.Int, _DataRow["EXECUTESQL_ID"].ToString()), CommonHelperNew.IsArrayType(CommonHelperNew.ValueType.String, Files[1])); _OracleHelper.ExcuteSql(SQLString); BackFile[0] = Files[0]; BackFile[1] = _EXECUTEFEEDBAK_ID; BackFile[2] = Files[1]; BackFile[3] = _DataRow["EXECUTESQL_CONTENT"].ToString(); } if (BackFile != null && CommonHelper.ObjectEmpty(BackFile) && BackFile.Length > 0) { e.Feedback = EventsCommodityNew.ObjectToBytes(BackFile); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } } } catch (Exception ex) { LogHelper.WriteReceiveLog("(ExcuteSql)" + ex.Message); string dir = Application.StartupPath + "//ErrorData"; string fil = dir + "//ExcuteSql" + DateTime.Now.ToString("yyyyMMdd") + ".log"; if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } FileStream filestream = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer = new StreamWriter(filestream, System.Text.Encoding.Default); writer.BaseStream.Seek(0, SeekOrigin.End); writer.WriteLine("{0}", string.Join(",", Files)); writer.Flush(); writer.Close(); filestream.Close(); } #endregion break; case 71: #region 语句执行信息反馈 propertyGrid1.SelectedObject = Files; if (!string.IsNullOrEmpty(Files[0]) && !string.IsNullOrEmpty(Files[1]) && !string.IsNullOrEmpty(Files[2]) && !string.IsNullOrEmpty(Files[3]) && !string.IsNullOrEmpty(Files[4])) { CommonHelperNew.ExcuteSql(Files); } #endregion break; case 91: #region HIGHWAY_EXCHANGE.T_CONNECTPOINT 旧版状态反馈 if (string.IsNullOrEmpty(Files[5]) || string.IsNullOrEmpty(Files[6]) || string.IsNullOrEmpty(Files[7])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.Insert_ConnectPoint(Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } #endregion break; case 92: #region HIGHWAY_EXCHANGE.T_STATEFEEDBACK 新版状态反馈 if (string.IsNullOrEmpty(Files[3]) || string.IsNullOrEmpty(Files[7])) { break; } propertyGrid1.SelectedObject = Files; if (CommonHelperNew.Insert_StateFeedback(Files)) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } #endregion break; case 99: #region 心跳数据 propertyGrid1.SelectedObject = Files; if (CommonHelperNew.InsertTransferTool(Files) && Files.Length > 0) { e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] backFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = backFiles; } break; #endregion case 100: #region 程序监听 propertyGrid1.SelectedObject = Files; e.Feedback = EventsCommodityNew.DoEvent(e.Buffer, 1); string[] FeedbackFiles = (string[])EventsCommodityNew.BytesToObject(e.Feedback); propertyGrid2.SelectedObject = FeedbackFiles; break; #endregion } } else { LogHelper.WriteSendLog("数组参数不可为空!"); return; } } catch (Exception ex) { LogHelper.WriteReceiveLog("(socketor_Receive)" + ex.Message, "日志_Receive" + DateTime.Now.ToString("yyyyMMdd")); return; } } #endregion private void Receiver_FormClosing(object sender, FormClosingEventArgs e) { socketor1.Stop(); socketor2.Stop(); socketor3.Stop(); } } }