public void listen() throws InvalidUIntException {
		System.out.println("listening");
		int available;
		try {
			Thread.sleep(2500);
			while(true) {
				while ((available = sis.available()) == 0)
				{
					Thread.sleep(100);
				}
				byte id = sis.readByte();
				sVLQ payloadLength = new sVLQ(sis.readByte());
				available = available - 1 - payloadLength.getBytes().length;
				if(available < payloadLength.getLong()) {
					Thread.sleep(100);
				}
				byte[] bytes = new byte[available];
				for (int i = 0; i < available; i++)
				{
					bytes[i] = sis.readByte();
				}
				if (id == 0)
				{
					logger.Log("ID 0 = Protocol Version (" + available + " bytes available)");
					logger.Log("Protocol Version is " + new UInt32(bytes).getInt());
					//PacketClientConnect pcc = new PacketClientConnect();
					//pcc.read(sis);
				}
				else
				{
					logger.Log("Packet: " + Packets.getName(id) + " ID: " + id + " rcvd");
					logger.Log("available says " + available);
					logger.Log("sVLQ length = " + payloadLength.getLong());
					logger.Log("Created bytes["+available+"], but i dont know what to do with it");
				}
				Thread.sleep(100);
			}
		} catch (IOException e) {
			e.printStackTrace();
		} catch (InterruptedException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}