位元組訊息的主體含有一個位元組串流。主體中沒有資料名稱或資料類型資訊,只有實際的資料, 而此資料的解譯完全由傳送端和接收端應用程式負責。
如果 XMS 應用程式需要和不使用 XMS 或 JMS 應用程式設計介面的應用程式交換訊息, 則位元組訊息特別有用。
在應用程式建立位元組訊息後, 訊息的主體會是唯寫的。應用程式會呼叫 BytesMessage 類別(若為 C 或 C++)或 IBytesMessage 介面(若為 .NET)的適當寫入方法, 以便將應用程式資料組合到主體中。每當應用程式將值寫入位元組訊息串流中時, 即會將值組合到應用程式所寫之前一個值的正後面。XMS 會維護一個內部游標, 以記住所組合之最後一個位元組的位置。
當應用程式傳送訊息時,訊息的主體即變成唯讀的。在此模式下, 應用程式可傳送訊息多次。
當應用程式接收位元組訊息時, 訊息的主體是唯讀的。應用程式可使用 BytesMessage 類別或 IBytesMessage 介面的適當讀取方法, 來讀取位元組訊息串流中的內容。應用程式會依序讀取位元組,而 XMS 會維護一個內部游標, 以記住所讀取之最後一個位元組的位置。
以下情況僅適用於 C: 應用程式可呼叫一個其 value 參數(或 buffer 參數,如果應用程式是呼叫 xmsBytesMsgReadBytes() 的話)為一個空值指標的讀取函數,以略過位元組而不讀取。如需如何略過字串的相關資訊, 請參閱xmsBytesMsgReadUTF – 讀取 UTF 字串。
當位元組訊息的主體為唯寫時, 如果應用程式呼叫 BytesMessage 類別或 IBytesMessage 介面的「重設」方法, 則主體會變成唯讀。方法也會將游標重新定位在位元組訊息串流的開頭。
當位元組訊息的主體為唯讀時, 如果應用程式呼叫 Message 類別(若為 C 或 C++)或 IMessage 介面(若為 .NET)的「清除主體」方法時, 主體會變成唯寫。此方法亦會清除主體。