我正在嘗試開發使用C作爲我的語言綁定的alljoyn應用程序。我已經理解並實現了基本教程,對其進行了定製並能夠在服務器和客戶端上構建應用程序。現在是我開發的第二部分,通過讀取這些文件並將它們放到alljoyn總線回覆中來編寫文件傳輸服務器和客戶端。AllJoyn總線消息中NULL字符的問題
由於Alljoyn答覆只能的65536個字節我尚未服務器和客戶端之間您自己的協議,其中服務器分解所述消息和所述客戶機順序地接收所述消息組塊一個接一個。現在我正面臨一個我想簡要描述的問題。
(1)如果我發送文本消息我接收它們完全。
(2)如果我發送的二進制數據I將失去的數據。我的理解是,alljoyn總線回覆是一個字符串,每當我收到一個NULL時,所有後續字符在接收器處都被讀爲零。
怎麼緩解這個事情。
我想知道是否有任何方法可以屏蔽我的二進制數據字符串中的空字符,或者我所遵循的方法本身是有缺陷的。
我剛開始使用這個alljoyn框架,我非常新手。任何幫助將是非常有幫助的。
嗨,我明白你的建議,但請澄清我是否可以在alljoyn巴士上定義兩個答覆。一個字符串和其他無符號整數數組。這就是我正在做的。 //// status = alljoyn_msgarg_array_set(outArg,&numArgs,「say」,size_of_segment,segment_data); ////這不是設置參數並給我一個錯誤////太多的數組元素 - 可能是一個地址:ER_BUS_BAD_VALUE ////。你能否澄清一點點 – Harsha
用簡單的話來說,我能傳遞整數,但不能傳遞uint8_t。雖然服務器和客戶端都沒有顯示任何錯誤,但在無符號整數的情況下,客戶端會收到0。現在如果我試圖傳遞一個帶有'ai'或'ay'簽名的數組,我得到一個錯誤{{{{太多的數組元素 - 可能是一個地址:ER_BUS_BAD_VALUE}}}}在我交叉檢查後,我意識到錯誤如果我超出了最大數組大小,並且我可以交叉檢查ALLJOYN_MAX_ARRAY_LEN是131072.但是,我使用的是256個元素的數組,但仍然出現相同的錯誤。 – Harsha