private void getHelloMessage() {
        try {
            InputStream iStream = socket.getInputStream();
            if ((byte) iStream.read() != 1) {
                throw new RuntimeException();
            }
            byte[] bLength = new byte[4];
            if (iStream.read(bLength, 0, 4) != 4) {
                throw new RuntimeException();
            }
            ByteBuffer buffer = ByteBuffer.allocate(4).put(bLength);
            buffer.position(0);
            int length = buffer.getInt();
            byte[] bName = new byte[length];
            if (iStream.read(bName, 0, length) != length) {
                throw new RuntimeException();
            }
            name = new String(bName);
            if (myManager.names.contains(name) || name.matches(".*\\s.*")) {
                throw new RuntimeException();
            }
            myManager.names.add(name);
            authorized = true;
        } catch (Throwable e) {
            if (!isClosed) {
                close(true, true);
            }
        }
    }