移动QQ代码研究之网络操作
来源:互联网 发布:网络辅导 编辑:程序博客网 时间:2024/04/30 10:50
在发送命令的时候首先将请求命令放在一个Vector对象里,然后调用Notify()来唤醒线程。线程在运行的时候首先判断请求Vector对象里是否有内容,如果没有则进入等待状态,如果有内容则调用http连接发送请求。这里注意的地方是,一旦用户登陆成功,那么网络操作层会一直运行,也就是说网络连接是一直在运行的。那么可能有人会有怀疑,如果用户不去发送网络数据,那么手机会不会自动将网络连接断掉。这种情况是存在的,移动QQ其实是开了两个连接线程,一个是Timer对象,使用TimeTask就是每阁一段时间去刷新用户好友的在线状态。
下面以伪代码来说明这些步骤,每个请求都写成了单一的函数,比如说,用户发送消息:
public void sendMsg(String s, String s1)
{
String s2 = null;
s2 = "VER=1.0&CMD=CLTMSG&SEQ=" + iSeqNo++ + "&UIN=" + strUin + "&UN=" + s + "&MG=" + s1;
sendRequest(s2, httpposterlistener);//这个函数的作用是唤醒线程
}
public synchronized void sendRequest(String s)
{
if(iSeqNo == 65535)
iSeqNo = 1;
requestQueue.addElement(s);
notify(); //唤醒 个人感觉还是采用对象锁来处理好点
}
唤醒线程后,会调用下面的函数
private boolean doSend(String s)
httpconnection = (HttpConnection)Connector.open(KQQMIDlet.url, 3, true);
httpconnection.setRequestMethod("POST");
byte abyte0[] = PkgTools.convertUnicode2UTF8Byte(s);
httpconnection.setRequestProperty("Content-Length", "" + abyte0.length);
dataoutputstream = httpconnection.openDataOutputStream();
dataoutputstream.write(abyte0);
dataoutputstream.flush();
这样就是整个网络操作过程,当然它还有个监听网络运行的接口,下次再讲吧^_^(转载请注明出处www.mobilercn.com移动频道,更多内容请访问论坛)
- 移动QQ代码研究之网络操作
- 移动网络代码---中国
- 移动设备网络代码
- x264list操作代码研究
- 研究方向确定:移动网络优化
- 物联网 移动国家代码 以及 移动网络代码
- 物联网 移动国家代码 以及 移动网络代码
- 物联网 移动国家代码 以及 移动网络代码
- 移动IP研究之分享几个代理服务器
- kfs代码研究(七、网络部分)
- kfs代码研究(七、网络部分)
- QQ客服代码移动版 腾讯QQ在wap手机页面的调用代码
- CodeCore(代码核)--移动互联网开发 QQ群
- 随滚动条移动的QQ在线客服代码
- 移动端H5 QQ在线客服链接代码
- 移动端H5 QQ在线客服链接代码
- kfs代码研究(写操作流程图)
- 基于visual c++之windows核心编程代码分析(47)实现交换网络的QQ号嗅探
- recently,a dream!
- 最近好郁闷
- 涂鸦
- FlashEarth|吐血推荐
- 如何在eclipse中对J2ME进行DEBUG
- 移动QQ代码研究之网络操作
- 简单实现手机游戏雪花场景效果
- 在中国搞技术只能混碗饭吃,没有太大希望
- dotproject 安装总结
- TClientDataSet使用不爽之处及处理方法
- 用Web或WINFROM把数据库中的图片读出来(图片类型是image)
- 给定数据类型的补码表示,不能简单的用取反加一的方法来求反码的,介绍下2的补码系统
- 推动中小企业的信息化进程
- ADO.NET之DataTable与DataView对象