曾以為QQ很神秘
后來覺得QQ很簡單,感覺無非就是一個QQ客戶端發(fā)送一個消息到服務(wù)器,然后服務(wù)器將消息發(fā)送到指定QQ客戶端
現(xiàn)在把當(dāng)時想的過程畫了下來
(大家別笑話我啊,當(dāng)時真的就是這么想的,感覺很簡單——其實(shí),當(dāng)自己去實(shí)現(xiàn)的時候,真的很復(fù)雜!!!)

還寫了一些代碼,不過還不能具體運(yùn)行,僅僅是一個框架:
我把這些都放在QQ包內(nèi):
*****************************************************************
首先,定義了一個客戶端接口——可能有點(diǎn)羅嗦,沒有完全實(shí)現(xiàn)接口的作用
package QQ;
/**
這個接口的作用是用來實(shí)現(xiàn)客戶端向服務(wù)器發(fā)送消息的接口。
*/
public interface QQClientInterface {
public void SendServerMessage();
public QQMessage ToFromQQServer();
}
****************************************************************
================================================================
****************************************************************
這是一個服務(wù)器的接口——貌似和上面的接口重復(fù)了!!!
package QQ;
/**
用來實(shí)現(xiàn)QQ服務(wù)器向QQ客戶端發(fā)送消息,和接受QQ客戶端發(fā)送來的消息
*/
public interface QQServerInterface {
public QQMessage SendMessageToQQClient(String QQName);
public void GetMessageFromQQClient();
}
****************************************************************
================================================================
****************************************************************
這里插入一個消息類QQMessage
package QQ;
/**
這個類專門用來存放QQClient和QQserver發(fā)送的消息。
*/
public class QQMessage {
private String FromQQName;
private String ToQQName;
public String getFromQQName() {
return FromQQName;
}
public void setFromQQName(String fromQQName) {
FromQQName = fromQQName;
}
public String getToQQName() {
return ToQQName;
}
public void setToQQName(String toQQName) {
ToQQName = toQQName;
}
****************************************************************
================================================================
****************************************************************
下面可以重點(diǎn)~\(≧▽≦)/~啦啦啦
這是QQ客戶端的代碼:
package QQ;
public class QQClient implements QQClientInterface {
private String QQName;
private QQMessage message;
public void SendServerMessage() {
/**
用來實(shí)現(xiàn)對QQ服務(wù)器發(fā)送消息(調(diào)用QQ服務(wù)器的接受消息的方法,將消息發(fā)送到服務(wù)器)
*/
}
public QQMessage ToFromQQServer() {
/**
隔一段時間向服務(wù)器發(fā)送一個消息,帶有自己QQName的消息,然后QQ服務(wù)器檢索,是否
有消息要傳給這個QQ,如果有將消息傳過來,并顯示。
*/
return null;
}
public String getQQName() {
return QQName;
}
public void setQQName(String qQName) {
QQName = qQName;
}
public QQMessage getMessage() {
return message;
}
public void setMessage(QQMessage message) {
this.message = message;
}
}
****************************************************************
================================================================
****************************************************************
最后是服務(wù)器端的代碼:
package QQ;
import java.util.HashMap;
import java.util.Map;
public class QQServer implements QQServerInterface {
Map<String,QQMessage> qqMessage = new HashMap<String,QQMessage>();
public QQMessage SendMessageToQQClient(String QQName) {
/**
QQServer要發(fā)送消息必須滿足兩個條件:
1. QQ客戶端將自己的QQName發(fā)送給QQServer,然后根據(jù)自己的QQNameQQ服務(wù)器開始遍歷qqMessage;
2. qqMessage的Values不是null。
如果QQMessage不為空,則將自己的V發(fā)送給QQName,否則返回Null;
*/
return null;
}
public void GetMessageFromQQClient() {
/**
QQServer接受消息,并將消息存放在qqMessage中
*/
}
}
****************************************************************
****************************************************************
暫時還沒寫出一個簡單QQ程序,大家盡心等待!我一定會寫出一個讓自己滿意的即時通訊程序!
posted on 2010-10-29 21:12
tovep 閱讀(1286)
評論(6) 編輯 收藏