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 } } }
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); //} }