Пример #1
0
        protected virtual void replyHandler <TSource, TSource2>(object sender, TcpIpEventArgs e, ref TSource inStr)
        {
            int threadID = System.Threading.Thread.CurrentThread.ManagedThreadId;

            lock (handlerLock)
            {
                try
                {
                    if (hasRtn)
                    {
                        return;
                    }
                    byte[] bytPacketDatas = TCPUtility._Str2Packet(inStr);
                    ushort iSeqNum        = TCPUtility.PrcGetPacketSeqNum(bytPacketDatas);

                    if (iSeqNum != e.iSeqNum)
                    {
                        return;
                    }
                    TSource2 tmpSXFY = (TSource2)TCPUtility._Packet2Str <TSource2>((byte[])e.objPacket, tcpipAgent.Name);

                    recvStr = (Object)tmpSXFY;
                    hasRtn  = true;
                }
                catch (Exception ex)
                {
                    //todo recode log
                }
            }
        }
Пример #2
0
        public void DecodReciveRawData(byte[] raw_data)
        {
            byte[] bytPacketDatas = null;
            int    data_coune     = raw_data.Length;
            int    PacketID       = 0;
            UInt16 SeqNum         = 0;
            object objPacket      = null;

            //while (data_coune >= LEN_MESSAGE_SIZE)
            //{
            string result = TCPUtility.PrcConvBytes2HexStr(raw_data, raw_data.Length, " ");

            Console.WriteLine(reciveCount++);
            Console.WriteLine(result);

            // Check Message Header
            if ((raw_data[0] == '@') && (raw_data[1] == 'P') &&
                (raw_data[2] == 'K') && (raw_data[3] == 'T'))
            {
                //bytPacketDatas = TCPUtility.PrcGetPacketFromMessage(raw_data);
                bytPacketDatas = TCPUtility.PrcGetPacketFromMessage_New(raw_data);
                PacketID       = TCPUtility.PrcGetPacketID(bytPacketDatas);
                SeqNum         = TCPUtility.PrcGetPacketSeqNum(bytPacketDatas);
                objPacket      = bytPacketDatas;
                TcpIpEventArgs arg = new TcpIpEventArgs(PacketID, SeqNum, objPacket);
                onTcpIpReceive(PacketID, arg);
                dataSeqNoOrderToComfirm(PacketID, SeqNum);
            }
            //data_coune -= LEN_MESSAGE_SIZE;
            //Array.Copy(raw_data, LEN_MESSAGE_SIZE, raw_data, 0, data_coune);
            //}
        }