java

位置:IT落伍者 >> java >> 浏览文章

JAVA与QQ网络通讯实例


发布日期:2021年06月02日
 
JAVA与QQ网络通讯实例

准备工作:

两个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有具体描述

登陆成功为登陆失败为

上一篇:XML在Java EE中的应用

下一篇:Eclipse环境下的OpenSocial开发