public byte[] toBytes() { ByteArrayOutputStream bytes = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(bytes); try { dos.writeByte(MessageType.ChirpMessage.typeValue); dos.writeByte(message.getFrom()); dos.writeByte(message.getTo()); dos.writeInt(message.getMessageId()); dos.writeByte(message.getFlagByte()); dos.writeUTF(message.getSender()); dos.writeUTF(message.getRecipient()); dos.writeUTF(message.getMessage()); dos.flush(); return bytes.toByteArray(); } catch (IOException e) { throw new RuntimeException(e); } }