Exemplo n.º 1
0
        /// <summary>
        /// 阻塞的方式处理控制器的消息,处理完之前无法接受控制器消息,属于监听子线程
        /// </summary>
        /// <param name="packetInfo"></param>
        public static void DealControllerPacket(PacketInfo packetInfo)
        {
            int iPhyPortNo = packetInfo.GetPhyPort();

            byte[]       buffer  = packetInfo.GetPacketByte();
            PacketEntity packet  = (PacketEntity)Util.BytesToObject(buffer);
            string       content = packet.GetStrContent();
            string       srcIP   = packet.GetHead().strSrcIP;
            string       desIP   = packet.GetHead().strDesIP;

            PacketHead.EN_PACKET_TYPE packetType = packet.GetHead().enPacketType;

            switch (packetType)
            {
            case PacketHead.EN_PACKET_TYPE.EN_ACK_SWITCH_ONLINE:
                Util.Log(Util.EN_LOG_LEVEL.EN_LOG_INFO, "控制器上线");
                break;

            //收到控制器下发的流表
            case PacketHead.EN_PACKET_TYPE.EN_PACKET_OUT_WITH_FLOW_ITEM:
                DealPacketOut(packetInfo);
                break;

            case PacketHead.EN_PACKET_TYPE.EN_PACKET_OUT_DUMP:
                //TODO
                break;

            default:
                break;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 处理消息队列中的消息
        /// </summary>
        /// <param name="packetInfo">待处理的消息包</param>
        public static void DealReceivePacket(PacketInfo packetInfo)
        {
            int iPhyPortNo = packetInfo.GetPhyPort();

            byte[]       buffer = packetInfo.GetPacketByte();
            PacketEntity packet = (PacketEntity)Util.BytesToObject(buffer);

            PacketHead.EN_PACKET_TYPE packetType = packet.GetHead().enPacketType;

            switch (packetType)
            {
            case PacketHead.EN_PACKET_TYPE.EN_NORMAL_PACKET:
                TranNormalPacket(packetInfo);
                break;

            default:
                break;
            }

            //Console.WriteLine("从端口" + iPhyPortNo + "收到消息:" + content);
            //Console.WriteLine("SrcIP: " + srcIP + "\tDesIP" + desIP);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 处理接收到的消息的函数
        /// </summary>
        /// <param name="packetInfo">待处理的消息</param>
        public static void DealReceivePacket(PacketInfo packetInfo)
        {
            byte[]       buffer = packetInfo.GetPacketByte();
            PacketEntity packet = (PacketEntity)Util.BytesToObject(buffer);

            PacketHead.EN_PACKET_TYPE packetType = packet.GetHead().enPacketType;
            //Console.WriteLine("从端口" + iPhyPortNo + "收到消息:" + content);
            //Console.WriteLine("SrcIP: " + srcIP + "\tDesIP: " + desIP);

            switch (packetType)
            {
            case PacketHead.EN_PACKET_TYPE.EN_SWITCH_ONLINE:
                DealSwitchOnlinePacket(packetInfo);
                break;

            case PacketHead.EN_PACKET_TYPE.EN_PACKET_IN:
                DealPakcetIn(packetInfo);
                break;

            default:
                break;
            }
        }