private void ProcessPackets() { foreach (DreamConnection dreamConnection in DreamConnections) { byte[] packetData; try { while ((packetData = dreamConnection.ReadPacketData()) != null) { IPacket packet = IPacket.CreatePacketFromData(packetData); try { _packetIDToCallback[packet.PacketID]?.Invoke(dreamConnection, packet); } catch (Exception e) { Console.Error.WriteLine("Error while handling received packet (" + packet.PacketID.ToString() + "): " + e.Message); } } } catch (Exception e) { Console.Error.WriteLine("Error while processing recieved packet from user '" + dreamConnection.CKey + "': " + e.Message); } } }
public void ProcessPackets() { while (this.Connected && _tcpStream.DataAvailable) { try { UInt32 packetLength = _tcpStreamBinaryReader.ReadUInt32(); byte[] packetBuffer = new byte[packetLength]; int bytesRead = _tcpStream.Read(packetBuffer, 0, (int)packetLength); while (bytesRead < packetLength) { bytesRead += _tcpStream.Read(packetBuffer, bytesRead, (int)packetLength - bytesRead); } IPacket packet = IPacket.CreatePacketFromData(packetBuffer); try { _packetIDToCallback[packet.PacketID]?.Invoke(packet); } catch (Exception e) { Console.Error.WriteLine("Error while handling received packet (" + packet.PacketID.ToString() + "): " + e.Message); } } catch (Exception e) { Console.WriteLine("Error while processing packets: " + e.Message); } } }