@Override
		public void run() {
			try {
				while(!isClosed) {
					byte type = (byte) is.read();
					if(type == 1) {
						DCPackage dp = receiveDCPackage();
						if(listener == null) {
							messageBuffer.add(dp);
						} else {
							listener.addInput(dp);							
						}
					} else {
						NetStatPackage nsp = receiveStatusPackage();
						if(listener == null) {
							statusBuffer.add(nsp);
						} else {
							listener.addInput(nsp);							
						}
					}
				}
			} catch (IOException e) {
				listener.connectionLost(e.getMessage());
			}
		}