好吧,我承认我是来凑数的,本来计划抓包分析一下数据流,发现这玩意还蛮复杂的,没有分析出结果,不过从一些数据流程上来看,在F7上实现一个豆瓣FM的客户端还是可行的,主要是搞清楚流程,或者说是最简流程。有个入口能进去把音乐的数据缓存下来播放就行了,基本上这个缓存放在RAM中就好了,实时播放。
抓包需要做的一些准备工作,需要先下载抓包工具Wireshark,关于工具本身不做过多的介绍,大家都懂的。为了方便观测这里我们需要使用滤波器,最好的方法是通过地址来过滤,毕竟现在电脑开起来太多的后台程序在使用网络,那个数据不是一般的多,通过地址是最有效的途径,针对这里而言。
好了,先确定一下豆瓣的服务器地址吧,直接通过PING来确定,这里我发现豆瓣的服务器地址会频繁更新,大概间隔30分钟内就更换了一个,之前的是221.147.4.32然后我怎么也抓不到数据了,我再PING一下发现更换成221.147.4.49了。
图1.豆瓣服务器地址
有了地址开始抓包吧,当然需要打开豆瓣FM的网页或者客户端,这里我使用的网页,后面有空再用客户端试试看看是否有差异。打开wireshark之后添加滤波器,这里使用地址滤波,格式如下ip.addr == 211.147.4.32 。
图2.wireshark-豆瓣FM
图3.web-豆瓣FM
图4. all-豆瓣FM
这里是基本的抓包截图,后面再开始分析细节的数据包和流程,基本上是HTTP请求和HTTP响应以及中间的一些TCP连接进行数据流交互,当然这里我们可以看到很多重传的包,应该说这个服务器还是蛮有挑战的。
先看看第一个http-get包如下
图5.http-get-list
图6.http-full-request
接着看第二个http-get包,广告图片包
图7.广告图
关于中间的那些TCP包,还没搞清楚具体的流程,等下次有空再分析吧,这里基本上是靠http来实现整个的数据交互过程,把request发送正确了基本上问题就不大了,细节的问题在摸索摸索吧。
本文来自论坛,点击查看完整帖子内容。