2009-11-11 94 views
1

我想知道什麼是系統V消息隊列即最大隊列大小,每件最大尺寸的限制等系統-V的消息隊列PHP C++

由於我工作的C++的集成與我的PHP腳本和具有將被推入隊列從PHP和C++程序將讀取的另一端的數據量非常大的數據。 我已經發明瞭一種策略,其中我有2種類型,將由PHP被寫入消息。

1) Message length 
2) Message data 

但是,我面臨的是我的C++應用程序中負責讀取長度/數據序列的不可預知的行爲。

首先,我無法寫出每msg_send超過6000個字節的PHP,這就是爲什麼我必須打破我的消息成塊,通過完整的郵件大小領導。 (1)+塊(2)+塊(2)+塊(2)+大小(1)+大小(1)+塊(塊)(大小括號中的msgtype)

2)+ Chunk(2)

雖然,我能夠正確讀取幾個塊,但在某處我開始收到錯誤並在隊列中留下一些消息,並使隊列無用。

回答

1

的限制取決於使用的平臺,操作系統版本和內核參數上。你應該查閱你係統的文檔。例如,你可以從Linux上的msgctl()獲得一些信息。