private NetStatPackage receiveStatusPackage() throws IOException {
		byte header = (byte) is.read();
		if((header & (1 << 7)) != 0) {
			return parseSnapshot(header, is);
		} else {
			boolean joining = (header & 1) == 0;
			byte[] alias = new byte[DCConfig.ALIAS_LENGTH];
			is.read(alias);
			int start = 0;
			while(alias[start] == (byte)0) start++;
			
			if(joining) {
				return new NetStatPackage.Joining(new String(alias, start, DCConfig.ALIAS_LENGTH - start));
			} else {
				return new NetStatPackage.Leaving(new String(alias, start, DCConfig.ALIAS_LENGTH - start));
			}
		}
	}