**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协议,可以保证接收顺序并一定到达。