private void btSend_Click(object sender, RoutedEventArgs e) { string DstAddr = this.txtRemoteAddr.Text; string t_Message = this.txtSend.Text; byte[] t_Data = null; if (this.chkBinarySend.IsChecked == false) { t_Data = Encoding.UTF8.GetBytes(t_Message); } else { t_Message = t_Message.Trim(); string[] t_strs = t_Message.Split(' '); t_Data = new byte[t_strs.Length]; for (int i = 0; i < t_strs.Length; i++) { t_Data[i] = NetRouterClientHelper.HexStr2Byte(t_strs[i]); } } if (this.m_NetClient != null) { this.m_NetClient.Send(DstAddr, t_Data); } }
public MainWindow() { InitializeComponent(); this.Width = 800; this.Height = 350; m_NetClient = new NetRouterClientHelper("测试通信平台发送接收"); m_NetClient.setStatusStrAction(SetStatusLabel0); m_NetClient.setConnectingAction(ConnectCallBack); m_NetClient.setConnection1Action(SetStatusLabel2); m_NetClient.setConnection2Action(SetStatusLabel3); m_NetClient.setReceiveAction(OnReceiveMessage); }
private void OnReceiveMessage(byte[] p_Data, int p_StartIndex, int p_Length) { this.SetStatusLabel0("接收到" + p_Length + "字节的数据"); string t_Message = null; // 字符串表示 string Message1 = Encoding.UTF8.GetString(p_Data, p_StartIndex, p_Length); // 十六进制表示 StringBuilder t_SB = new StringBuilder(); for (int i = 0; i < p_Length; i++) { if (t_ReceiveByteCount % 16 == 0) { t_SB.Append("\r\n"); } //t_SB.Append(NetRouterClientHelper.Byte2HexStr(p_Data[p_StartIndex + i])); t_SB.Append(NetRouterClientHelper.Byte2HexStr(p_Data[p_StartIndex + i])); t_SB.Append(" "); t_ReceiveByteCount++; } string Message2 = t_SB.ToString(); Action del = delegate() { if (this.chkHEXDisplay.IsChecked == true) { t_Message = Message2; } else { t_Message = Message1 + "\r\n"; } string str = this.txtReceive.Text; str = str + t_Message; this.txtReceive.Text = str; }; this.Dispatcher.Invoke(del, null); }