点击这里给我发消息 点击这里给我发消息

JAVA与QQ网络通讯实例

添加时间:2013-12-7
    相关阅读: 开发 网络 项目

    准备工作:

    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

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册