/// <summary> /// 自行编码 /// </summary> /// <param name="TransType"></param> /// <param name="Data">最高位不能为1</param> public void SendData(EnumTransDataType TransType, char[] Data) { if (client == null) { return; } if (!client.Connected) { return; } //lock ensure that no other threads try to use the stream at the same time. lock (client.GetStream()) { StreamWriter streamWriter = new StreamWriter(client.GetStream()); streamWriter.AutoFlush = true; char[] buff = new char[Data.Length + 2]; buff[0] = TransTypeToChar(TransType); Array.Copy(Data, 0, buff, 1, Data.Length); buff[buff.Length - 1] = '.';//添加结尾标记 streamWriter.Write(buff); //try //{ // streamWriter.Flush();// 立刻发送所有数据. //} //catch (FormatException ex) //{ // Console.WriteLine(ex.Message); // if (Log != null) // Log.Write(ex.Message); //} } }
public static EnumTransDataType CharToTransType(char TransType) { EnumTransDataType tDataType = EnumTransDataType.未知; switch (TransType) { case '1': tDataType = EnumTransDataType.测试; break; case '2': tDataType = EnumTransDataType.数据; break; case '3': tDataType = EnumTransDataType.命令; break; case '4': tDataType = EnumTransDataType.提示; break; case '5': tDataType = EnumTransDataType.请求; break; case '6': tDataType = EnumTransDataType.应答; break; case '7': tDataType = EnumTransDataType.校验; break; case '8': tDataType = EnumTransDataType.欢迎; break; case '9': tDataType = EnumTransDataType.心跳; break; default: break; } return(tDataType); }
/// <summary> /// 采用Default和Base64编码发送字符串数据 /// </summary> /// <param name="TransType"></param> /// <param name="Data"></param> public void SendData(EnumTransDataType TransType, string Data) { try { if (client == null) { return; } if (!client.Connected) { return; } //lock ensure that no other threads try to use the stream at the same time. lock (client.GetStream()) { StreamWriter streamWriter = new StreamWriter(client.GetStream()); streamWriter.AutoFlush = true; byte[] buff = Encoding.Default.GetBytes(Data); char[] charBuff = new char[buff.Length * 2]; int i = Convert.ToBase64CharArray(buff, 0, buff.GetLength(0), charBuff, 1, Base64FormattingOptions.None); charBuff[0] = TransTypeToChar(TransType); charBuff[i + 1] = '.';//添加结尾标记 Array.Resize <char>(ref charBuff, i + 2); streamWriter.Write(charBuff); //try //{ // streamWriter.Flush();// 立刻发送所有数据. //} //catch (FormatException ex) //{ // Console.WriteLine(ex.Message); // if (Log != null) // Log.Write(ex.Message); //} } } catch (Exception ex) { Console.WriteLine(ex.Message); if (Log != null) { Log.Write(ex.Message); } } }
public static char TransTypeToChar(EnumTransDataType TransType) { char b = '0'; switch (TransType) { case EnumTransDataType.测试: b = '1'; break; case EnumTransDataType.数据: b = '2'; break; case EnumTransDataType.命令: b = '3'; break; case EnumTransDataType.提示: b = '4'; break; case EnumTransDataType.请求: b = '5'; break; case EnumTransDataType.应答: b = '6'; break; case EnumTransDataType.校验: b = '7'; break; case EnumTransDataType.欢迎: b = '8'; break; case EnumTransDataType.心跳: b = '9'; break; default: break; } return(b); }
public TransEventArgs(EnumTransDataType TransType, char[] Data) { data = Data; transType = TransType; }