/// <summary> /// Return true if packet was recognised and processed /// </summary> /// <param name="e"></param> /// <returns></returns> internal bool processReceivedPacket(byte[] dgram) { // TODO: this is massive memory allocation and needs a buffer to work BinaryReader br = new BinaryReader(new MemoryStream(dgram)); IClientPacketTransporterNetworked transporter = findCorrectPacketTransporter(br); if (transporter == null) { return(false); } // I think this currently is unnecessary since the tcpconnection calls this event on one thread :D lock (this) { transporter.QueueReceivedPacket(br); /*lock ( transporter ) { * Monitor.PulseAll( transporter ); * while ( transporter.WaitingReceiversCount > 0 ) Monitor.Wait( transporter ); * }*/ } return(true); }
private void setTransporterNetworkID(int networkID, IClientPacketTransporterNetworked transporter) { transporter.SetNetworkID(networkID); transporterNetworkIDMap[networkID] = transporter; }