public void enqueueMessage(int queueId, Message message) throws  MessageEnqueueException, MessageEnqueueSenderDoesNotExistException, MessageEnqueueQueueDoesNotExistException {
        try {
            _out.writeInt(20 + message.getMessage().getBytes().length); //Size
            _out.writeInt(Response.MSG_QUEUE_ENQUEUE);
            _out.writeInt(_clientId); //Sender
            _out.writeInt(message.getReceiver()); //Receiver
            _out.writeInt(queueId); //Queue
            _out.writeInt(message.getMessage().getBytes().length);
            _out.write(message.getMessage().getBytes());
            _out.flush();

            int messageType = _in.readInt();
            if(messageType != Response.STATUS_OK) {
                int errorCode = _in.readInt();
                if(errorCode == Response.ERR_MESSAGE_ENQUEUE_EXCEPTION) {
                    throw new MessageEnqueueException(new Exception());
                } else if(errorCode == Response.ERR_SENDER_DOES_NOT_EXIST_EXCEPTION) {
                    throw new MessageEnqueueSenderDoesNotExistException(new Exception());
                } else if(errorCode == Response.ERR_QUEUE_DOES_NOT_EXIST_EXCEPTION) {
                    throw new MessageEnqueueQueueDoesNotExistException(new Exception());
                }
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }