示例#1
0
            /// <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);
                    //}
                }
            }
示例#2
0
        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);
        }
示例#3
0
            /// <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);
                    }
                }
            }
示例#4
0
        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);
        }
示例#5
0
 public TransEventArgs(EnumTransDataType TransType, char[] Data)
 {
     data      = Data;
     transType = TransType;
 }