| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 719 人关注过本帖
标题:JAVA 与 QQ 的网络通讯实例
只看楼主 加入收藏
my766la
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-21
收藏
 问题点数:0 回复次数:6 
JAVA 与 QQ 的网络通讯实例

准备工作:1.两个QQ(Q号现在好容易申请)
2.eclipse(支持awt swing 可视化开发的版本为佳)
3.JDK1.5以上
4.JQL2006,直接从官方那边下载的不能直接用需要改装,下载地址:http://www.766la.com/766BBS/forum/t-0-5409-1.html

步骤:
1.解压jqgsv0.1beta_src
2.用eclipse导入目录jqgsv0.1beta_src下的项目
3.把jqgsv0.1beta_src目录下的commons-codec.jar 和 commons-logging.jar加到项目属性里的Librares中
4.打开com.myqq.MuiltQQfrendSend,实例代码都在这里,可以直接运行用eclipse运行该类,如果登陆失败,多登陆
几次就可以了
//登陆代码
....
client = new QQClient();
client.setConnectionPoolFactory(new PortGateFactory());
QQUser user = new QQUser(你的Q号, 你Q号的密码);
client.addQQListener(this);
user.setUdp(true);
client.setUser(user);
//client.setLoginServer("sz.tencent.com");
client.setLoginServer("58.61.32.40");
.....
qq服务器地址有多种,你可以选一个填上去,QQ号必须是整型

//发送消息
.....
client.sendIM(一个好友的QQ号,Util.getBytes(comext));//发送一个普通的消息
......
好友的QQ号必须是整型
类QQClient主要是执行QQ客户端的动作,比如,发送消息,添加好友,获取好友等

//获取你的Q号下的所有好友信息
....
GetFriendListReplyPacket gf = (GetFriendListReplyPacket)e.getSource();
java.util.List friends = (java.util.List) gf.friends;
for(int i = 0 ; i < friends.size() ; i++){
QQFriend qf = (QQFriend)friends.get(i);
jTextArea1.setText(jTextArea1.getText() + String.valueOf(qf.qqNum) + "\n");
}
if((int)gf.position != 65535){
client.getFriendList(gf.position);
}else{
jButton2.setEnabled(true);
jButton1.setEnabled(true);
}
........
client.getFriendList() //获取好友列表
这个方法需要配合一个变量position和一个事件才能完成,因为QQ是按多次发送好友列表,position = 65535
表示已到好友列表最后一页,不需要在getFriendList,当得到好友列表会产生一个事件,事件编号为12
GetFriendListReplyPacket 好友类

//事件驱动
jql全部采用事件驱动,实现接口 IQQListener

public void qqEvent(QQEvent e) {//事件监听器
System.out.println("事件ID:" + e.type);
/* 142*/ switch(e.type)
{
/* <-MISALIGNED- > */ /* 142*/ default:
break;
/* <-MISALIGNED- > */ /* 144*/ case 1:
/* <-MISALIGNED- > */ /* 144*/ processLoginSuccess();//对应的事件处理
/* <-MISALIGNED- > */ /* 145*/ break;
/* <-MISALIGNED- > */ /* 147*/ case 2:
/* <-MISALIGNED- > */ /* 147*/ processLoginFail();
/* <-MISALIGNED- > */ /* 148*/ break;
///* <-MISALIGNED- > */ /* 150*/ case 3:
///* <-MISALIGNED- > */ /* 150*/ processLoginUnknownError();
///* <-MISALIGNED- > */ /* 151*/ break;
/* <-MISALIGNED- > */ /* 153*/ case 16:
/* <-MISALIGNED- > */ /* 153*/ processSendIMSuccess();
/* <-MISALIGNED- > */ /* 154*/ break;
/* <-MISALIGNED- > */ /* 156*/ case 10:
/* <-MISALIGNED- > */ /* 156*/ processChangeStatusSuccess();


QQ的每次动作都会产生一个事件,每个事件对应一个整数,在类edu.tsinghua.lumaqq.qq.events.QQEvent有具体描述
如,登陆成功为1,登陆失败为2

先发到这,如有不对的地方,请多多指教

搜索更多相关主题的帖子: JAVA 网络 实例 通讯 
2007-10-22 14:09
heheli
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-1-14
收藏
得分:0 

好东西,去看看

2007-10-22 14:53
my766la
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-21
收藏
得分:0 
正在研究jql2007 有结果马上发布
2007-10-22 15:54
my766la
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-21
收藏
得分:0 
回复:(my766la)正在研究jql2007 有结果马上发布
早上来顶一个
2007-10-23 09:39
my766la
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-21
收藏
得分:0 
2007-10-23 09:45
my766la
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-21
收藏
得分:0 
回复:(my766la)[em09]
2007-10-23 16:24
netstriker
Rank: 1
等 级:新手上路
威 望:1
帖 子:257
专家分:0
注 册:2007-3-24
收藏
得分:0 
  厉害~佩服~!!!
2007-10-23 23:49
快速回复:JAVA 与 QQ 的网络通讯实例
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011344 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved