请选择 进入手机版 | 继续访问电脑版

默认
发表评论 11
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] 求教MobileIMSDK的UDP传输过程中头部的大小
我看了你写的那个文章,udp在传输过程中尽量将包控制在512左右,我现在需要传输的数据有点大,目前选择是切包然后传递,你的udp包头部是封装在一起的,所有我想知道udp包头部信息(Android端向服务器发包)一共是在多少字节,然后我好通过这个字节数去判断自己的分包大小。

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:MobileIMSDK
上一篇:[已解决] MobileIMSDK-Web版的服务器端能支持https请求吗?下一篇:[已解决] MobileIMSDK 退出登录后再重新登录的问题
推荐方案
评论 11
然后在发送udp请求时你这边除了头部信息外是否还有携带一些东西,我想知道我(Android端)如果向服务器发送消息,在保证不超过512字节的情况下能够发送的最大字节数是多少
签名: 该会员没有填写今日想说内容.
你要发送的是什么数据?音视频的包?

论坛上的那篇UDP包数据长度我在别的资料上查到过,貌似论坛上说的512是不对的,理论上应该是可以超过1000多字节,建议你自已以真实测试为准。

至于服务端框架的协议自身占用的长度,你在服务端把数据打印出它的长度就知道了。依赖这个长度貌似并不优雅,因为后面要是换成pb了那不就变了?
引用:JackJiang 发表于 2017-07-10 18:59
你要发送的是什么数据?音视频的包?

论坛上的那篇UDP包数据长度我在别的资料上查到过,貌似论坛上说的5 ...

我这边需要传输的是长文字,我用的你的那个demo,获取客户端发来的udp的数据是直接通过你里面的回调方法得到的,然后获取框架协议的自身长度是需要修改你的代码吗,在你获取udp包的里面去获取包的大小
签名: 该会员没有填写今日想说内容.
引用:渐渐的贱贱的 发表于 2017-07-11 10:19
我这边需要传输的是长文字,我用的你的那个demo,获取客户端发来的udp的数据是直接通过你里面的回调方法 ...

不用修改代码,直接把服务端的源码放上去,打印出一个单字符消息的byte长度,不就知道框架级里的协议格总长度了吗。
引用:JackJiang 发表于 2017-07-11 10:32
不用修改代码,直接把服务端的源码放上去,打印出一个单字符消息的byte长度,不就知道框架级里的协议格总 ...

是打印这个方法中的message吗
5.png
签名: 该会员没有填写今日想说内容.
引用:JackJiang 发表于 2017-07-11 10:32
不用修改代码,直接把服务端的源码放上去,打印出一个单字符消息的byte长度,不就知道框架级里的协议格总 ...

我看你这边服务器开启监听端口是通过NioDatagramAcceptor,获取UDP包是通过Mina吗,那这样的话是通过上面的那个message去获取整个udp包大小吗
签名: 该会员没有填写今日想说内容.
引用:JackJiang 发表于 2017-07-11 10:32
不用修改代码,直接把服务端的源码放上去,打印出一个单字符消息的byte长度,不就知道框架级里的协议格总 ...

我使用demo是只能获取到回调输出的那个方法,但是那个方法获取出来的内容应该不是整个报文的内容吧,如果要知道具体的长度应该是要去找整个服务器的那个源码里面找到获取udp的地方吧
签名: 该会员没有填写今日想说内容.
引用:渐渐的贱贱的 发表于 2017-07-11 10:52
是打印这个方法中的message吗

是的,这个就可以了
引用:JackJiang 发表于 2017-07-11 11:18
是的,这个就可以了

你这边在传输汉字的过程中是一个汉字三个字节吗,我这边算的好像是3个,是因为编码方式的原因导致的吗
签名: 该会员没有填写今日想说内容.
引用:渐渐的贱贱的 发表于 2017-07-11 12:06
你这边在传输汉字的过程中是一个汉字三个字节吗,我这边算的好像是3个,是因为编码方式的原因导致的吗

底层都是utf-8编码
引用:JackJiang 发表于 2017-07-11 14:39
底层都是utf-8编码

好的,谢谢了
签名: 该会员没有填写今日想说内容.
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部