public void run() {
		try {
			int t = 0;
			while (true) {

				os.write(1);
				List<String> lst = (List<String>) ois.readObject();

				for (int i = 0; i < lst.size(); i++) {
					a[i] = Integer.valueOf(lst.get(i));
				}
				// log.info("Server connected");
				gui.setCb(a, "Сервер подключен");
				t++;
				TimeUnit.SECONDS.sleep(2);
				// через месяц прекращаем индикацию (:
				if (t > 13000000) {
					break;
				}

			}

		} catch (IOException e) {
			System.err.println("IO Exception");
			log.info("IO Exeption " + e
					+ "/n Server failed, restart indikation");
			gui.setCb(a, "Потеряна связь с сервером");

			// пытаемся перезапустить раз в 3 сек
			try {
				TimeUnit.SECONDS.sleep(3);
			} catch (InterruptedException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			try {
				Main.StartIndication();
			} catch (InterruptedException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			// Всегда закрывает:
			try {
				socket.close();
			} catch (IOException e) {
				log.info("Socket not closed " + e);
				System.err.println("Socket not closed");
			}
			threadcount--; // Завершаем эту нить
		}
	}