**1.5.1數據傳輸常見問題**
(1)使用透明通道發送中文數據,安卓端發送,c#端接收亂碼。
問題解答:
透明通道函數只是提供一個數據通道,需要上層客戶端提供統一的編碼方式,可能是android端和c#端采用的編碼和解碼的格式不一樣造成。
(2)一方發送透明通道數據,另一方未接收到,如何解決?
問題現象:
A用透明通道接口向B傳輸數據,B沒有接收到。已調試傳入B的userid是對的,B有實現透明通道回調接收。
問題分析:
透明通道接口對應發送和接收兩個過程,沒有收到數據可能是發送的原因,也可能是接收的原因。
發送方面:
a、傳入發送目標對象的userid有誤
b、發送給已離線的目標對象
接收方面:
a、接收的回調跟發送的api不匹配,如透明通道發送、在擴展透明通道回調做接收處理
b、沒有設置回調接收
客戶出現此問題概率最大的原因是沒有設置回調接收(即沒有設置監聽)。所以一般會先問回調接收是否有設置,可以通過代碼來排查。
解決方案:
a、是否有設置透明通道回調接收呢?(可通過代碼來排查)
b、可以開啟調試模式,打開“傳輸任務日志”,然后傳送文件之后,將雙方的日志發過來
(3)使用擴展透明通道接口發送數據的順序跟接收順序不一致?
問題現象:
如發送數據A、B、C,但接收數據的順序卻是A、C、B。
問題解答:
擴展透明通道走的UDP通道,不保證發送和接收的順序。如果要保證發送和接收順序,建議使用透明通道接口,此接口走的TCP協議,可以保證接收順序并一定到達。