@Override
    /**
     * creates a Socket if a connection is incoming, then reads the stuff we get
     * and passes it to the ParserContainer
     */
    public void run() {
        while (alive) {
            logger.log(2, logKey, "worker is now running in the while(alive) loop\n");
            try (
                    Socket cSocket = sSocket.accept();) {
                logger.log(2, logKey, "accepted an incoming connection\n");
                if (!alive) {
                    logger.log(1, logKey, "server got the dead signal, shutting down now\n");
                    break;
                }
                try (
                        PacketReader reader = new PacketReader(cSocket.getInputStream());) {
                    logger.log(4, logKey, "created the inputStream\n");
                    incomingPacket = reader.readPacket();

                    infoColl.update_device(new Integer(incomingPacket.getGeraeteId()).toString(), incomingPacket.getValue());
                } catch (IOException e) {
                    logger.log(0, logKey,
                            "\n\n",
                            "ERROR: \n",
                            "    An Exception occured inside of ASynchronous_IO_Worker\n",
                            "    while trying to read a Packet\n",
                            "DETAILED ERROR: \n    ",
                            e.getMessage(), "\n\n"
                    );
                    Main.exit();
                }
            } catch (IOException e) {
                logger.log(0, logKey,
                        "\n\n",
                        "ERROR: \n",
                        "    An Exception occured inside of ASynchronous_IO_Worker\n",
                        "    while trying to accept a incoming Connection\n",
                        "DETAILED ERROR: \n    ",
                        e.getMessage(), "\n\n"
                );
                Main.exit();
            }
        }
        try {
            sSocket.close();
        } catch (IOException e) {
            logger.log(0, logKey,
                    "\n\n",
                    "ERROR: \n",
                    "    An Exception occured inside of ASynchronous_IO_Worker\n",
                    "    while trying to read a Packet\n",
                    "DETAILED ERROR: \n    ",
                    e.getMessage(), "\n\n"
            );
            Main.exit();
        }
    }