コード例 #1
0
        void rec(byte[] data, int length)
        {
            IPHeader ipHeader = new IPHeader(data, length);
            IPacket  packet   = ipHeader.ParseData();

            if (OnPacket != null)
            {
                OnPacket(ipHeader.ProtocolType, packet);
            }

            if (OnTcpStream != null && ipHeader.ProtocolType == ProtocolType.Tcp)
            {
                TcpHeader tcp = (TcpHeader)packet;

                if (AllowTcpPacket(tcp))
                {
                    TcpStream stream = TcpStream.GetStream(_TcpStreams, tcp);
                    if (stream != null)
                    {
                        if (stream.IsClossed)
                        {
                            _TcpStreams.Remove(stream);
                        }
                        OnTcpStream(stream);
                    }
                }
            }

            Receive();
        }