准备工作:
两个QQ(Q号现在好容易申请)
eclipse(支持awt swing 可视化开发的版本为佳)
JDK以上
JQL直接从官方那边下载的不能直接用需要改装下载地址:
步骤:
解压jqgsvbeta_src
用eclipse导入目录jqgsvbeta_src下的项目
把jqgsvbeta_src目录下的commonscodecjar 和 commonsloggingjar加到项目属性里的Librares中
打开commyqqMuiltQQfrendSend实例代码都在这里可以直接运行用eclipse运行该类如果登陆失败多登陆
几次就可以了
//登陆代码
client = new QQClient();
clientsetConnectionPoolFactory(new PortGateFactory());
QQUser user = new QQUser(你的Q号 你Q号的密码);
clientaddQQListener(this);
usersetUdp(true);
clientsetUser(user);
//clientsetLoginServer();
clientsetLoginServer();
qq服务器地址有多种你可以选一个填上去QQ号必须是整型
//发送消息
clientsendIM(一个好友的QQ号UtilgetBytes(comext));//发送一个普通的消息
好友的QQ号必须是整型
类QQClient主要是执行QQ客户端的动作比如发送消息添加好友获取好友等
//获取你的Q号下的所有好友信息
GetFriendListReplyPacket gf = (GetFriendListReplyPacket)egetSource();
javautilList friends = (javautilList) gffriends;
for(int i = ; i < friendssize() ; i++){
QQFriend qf = (QQFriend)friendsget(i);
jTextAreasetText(jTextAreagetText() + StringvalueOf(qfqqNum) + \n);
}
if((int)gfposition != ){
clientgetFriendList(gfposition);
}else{
jButtonsetEnabled(true);
jButtonsetEnabled(true);
}
clientgetFriendList() //获取好友列表
这个方法需要配合一个变量position和一个事件才能完成因为QQ是按多次发送好友列表position =
表示已到好友列表最后一页不需要在getFriendList当得到好友列表会产生一个事件事件编号为
GetFriendListReplyPacket 好友类
//事件驱动
jql全部采用事件驱动实现接口 IQQListener
public void qqEvent(QQEvent e) {//事件监听器
Systemoutprintln(事件ID: + etype);
/* */ switch(etype)
{
/* <MISALIGNED > */ /* */ default:
break;
/* <MISALIGNED > */ /* */ case :
/* <MISALIGNED > */ /* */ processLoginSuccess();//对应的事件处理
/* <MISALIGNED > */ /* */ break;
/* <MISALIGNED > */ /* */ case :
/* <MISALIGNED > */ /* */ processLoginFail();
/* <MISALIGNED > */ /* */ break;
///* <MISALIGNED > */ /* */ case :
///* <MISALIGNED > */ /* */ processLoginUnknownError();
///* <MISALIGNED > */ /* */ break;
/* <MISALIGNED > */ /* */ case :
/* <MISALIGNED > */ /* */ processSendIMSuccess();
/* <MISALIGNED > */ /* */ break;
/* <MISALIGNED > */ /* */ case :
/* <MISALIGNED > */ /* */ processChangeStatusSuccess();
QQ的每次动作都会产生一个事件每个事件对应一个整数在类edutsinghualumaqqqqeventsQQEvent有具体描述
如登陆成功为登陆失败为