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