From a715181089be0d31cd737a5367ffd02690b9d77f Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期四, 12 十一月 2020 13:36:01 +0800 Subject: [PATCH] 20201112 --- HDL_ON/DriverLayer/Control_TcpClient.cs | 53 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 48 insertions(+), 5 deletions(-) diff --git a/HDL_ON/DriverLayer/Control_TcpClient.cs b/HDL_ON/DriverLayer/Control_TcpClient.cs index d407c9d..f3ad0a0 100644 --- a/HDL_ON/DriverLayer/Control_TcpClient.cs +++ b/HDL_ON/DriverLayer/Control_TcpClient.cs @@ -13,8 +13,8 @@ private TcpClient _tcpClient; //鍒涘缓涓�涓鎵橈紝鐢ㄦ潵婊¤冻鍏朵粬绫昏皟鐢� - public delegate void DelegateMessage(byte[] bytes); - public event DelegateMessage OnmessageEvent; + //public delegate void DelegateMessage(string str); + public Action<string> ReceiveEvent; /// <summary> /// 鏋勯�犲嚱鏁� @@ -67,15 +67,58 @@ networkStream.Write(bytes, 0, bytes.Length); } + /// <summary> + /// 鑾峰彇鍒楄〃鏁版嵁鍥炶皟鏂规硶 + /// </summary> + public Action<string> GetListResponseAction; //鎺ユ敹娑堟伅 public void ReceiveMessage() { NetworkStream networkStream = _tcpClient.GetStream(); while (true) { - byte[] buffer = new byte[8]; - int size = networkStream.Read(buffer, 0, buffer.Length); - OnmessageEvent?.Invoke(buffer); + // 瀹氫箟涓�涓�2M鐨勭紦瀛樺尯锛� + byte[] arrMsgRec = new byte[1024 * 1024 * 2]; + int size = networkStream.Read(arrMsgRec, 0, arrMsgRec.Length); + var tcpDataString = System.Text.Encoding.UTF8.GetString(arrMsgRec, 0, arrMsgRec.Length); + if (!string.IsNullOrEmpty(tcpDataString)) + { + ReceiveEvent?.Invoke(tcpDataString); + } + + //// 灏嗘帴鍙楀埌鐨勬暟鎹瓨鍏ュ埌杈撳叆 arrMsgRec涓紱 + //int length = -1; + //try + //{ + // length = socketClient.Receive(arrMsgRec); // 鎺ユ敹鏁版嵁锛屽苟杩斿洖鏁版嵁鐨勯暱搴︼紱 + //} + //catch (Exception ex) + //{ + // MainPage.Log($"tcpListener error 1 : {ex.Message}"); + + // Flag_Receive = false; + // // 浠庨�氫俊绾跨▼闆嗗悎涓垹闄よ涓柇杩炴帴鐨勯�氫俊绾跨▼瀵硅薄锛� + // string keystr = socketClient.RemoteEndPoint.ToString(); + // dic_ClientSocket.Remove(keystr);//鍒犻櫎瀹㈡埛绔瓧鍏镐腑璇ocket + // dic_ClientThread[keystr].Abort();//鍏抽棴绾跨▼ + // dic_ClientThread.Remove(keystr);//鍒犻櫎瀛楀吀涓绾跨▼ + + // tcpClient = null; + // socketClient = null; + // break; + //} + //byte[] buf = new byte[length]; + //Array.Copy(arrMsgRec, buf, length); + //lock (tcpClient.m_Buffer) + //{ + // var tcpDataString = System.Text.Encoding.UTF8.GetString(arrMsgRec, 0, length); + // if (!string.IsNullOrEmpty(tcpDataString)) + // { + // ReceiveEvent?.Invoke(tcpDataString); + // } + + // MainPage.Log($"鎺ユ敹鏈嶅姟绔暟鎹�:{tcpDataString}"); + //} } } -- Gitblit v1.8.0