准備工作:
兩個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有具體描述
如登陸成功為登陸失敗為
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26541.html