-
大小: 518KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-05
- 語言: Java
- 標簽: java??畢業(yè)設(shè)計??
資源簡介
我自己的做的本科畢業(yè)設(shè)計+畢業(yè)論文
以下是部分摘要:
隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)聊天工具作為一種交流工具,已經(jīng)受到網(wǎng)民的青睞。目前,出現(xiàn)了很多功能強大的聊天工具,其中應(yīng)用比較廣泛的有騰訊QQ、MSN-Messager等等。
即時通訊軟件,是每一個上網(wǎng)用戶都需要的工具,它除了能夠讓您迅速地在網(wǎng)上找到自己的朋友和伙伴之外,還可以實時交談和傳遞信息,截止到目前,全球約有近3億多人使用即時軟件,正因為即時通訊軟件擁有數(shù)以億計的用戶和增長的市場,所以各個公司都盯上了這個最大的市場,一時間,即時通訊市場硝煙四起。
對等網(wǎng)絡(luò)(peer-to-peer,簡稱P2P),應(yīng)用最初出現(xiàn)時和現(xiàn)在并不相同。事實上可以認為它是若干不同技術(shù)以及流行趨勢相結(jié)合的產(chǎn)物。以下是導致P2P技術(shù)發(fā)展最重要的趨勢:首先,一些新技術(shù)與軟件工程的結(jié)合,形成了一種將工作分散的趨勢。P2P計算正是這種分散工作趨勢的結(jié)果。其次,在企業(yè)應(yīng)用集成等因素的驅(qū)動下,過去十年漸漸形成從集中的單機系統(tǒng)轉(zhuǎn)向分布式系統(tǒng)。然而隨著互聯(lián)網(wǎng)的發(fā)展,全面的分布式計算也就成為一種迫切需求。

代碼片段和文件信息
package?javaqq;
import?java.io.*;
import?java.net.*;
import?sun.audio.*;
public?class?Catcher?extends?Thread?{
MulticastSocket?Csocket;
Socket?CheckSocket;
Stateframe?sf;
InetAddress?Cgroup;
DatagramPacket?packet;
DatagramSocket?socket;
String?tag;
int?i=0k;
BufferedReader?in;
PrintWriter?out;
UserInfo[]?userinfo;
public?final?static?int?CATCH_PORT=7322;
public?final?static?int?CHECK_PORT=5001;
public?Catcher(MulticastSocket?csocket?Stateframe?sf?String?tag?UserInfo[]?userinfo)?{
Csocket?=?csocket;
this.sf?=?sf;
this.tag?=?tag;
this.userinfo?=?userinfo;
try?{
Cgroup=InetAddress.getByName(“239.0.0.0“);
}?catch?(UnknownHostException?e)?{
e.printStackTrace();
}
start();
}
//實現(xiàn)對組播端口的監(jiān)聽,并作出反映
public?void?run(){
try?{
socket=new?DatagramSocket();
while(true){
byte[]?Rdata=new?byte[256];
packet=new?DatagramPacket(RdataRdata.length);
Csocket.receive(packet);//等待接受數(shù)據(jù)包
//count記錄了數(shù)據(jù)包的最后一位數(shù),也就是記錄了用戶名的長度。
String?count=new?
String(packet.getData()).substring(packet.getLength()-1packet.getLength());
int?num=Integer.parseInt(count);
//check為數(shù)據(jù)包的IP地址
String?check=new?String(packet.getData()).substring(1+numpacket.getLength()-1);
String?judge=new?String(packet.getData()).substring(01);
String?usertag=new?String?(packet.getData()).substring(1num+1);
//judge為“C”時反送一個含有對方用戶名以及本機的IP的數(shù)據(jù)包到組播組
if(judge.equals(“C“)){
i=sf.friList.getItemCount();
processMsg(usertag);
userinfo[i]=new?UserInfo(usertagcheck);
ring();
Connect(check);
}
if(judge.equals(“D“)){
while(userinfo[i]!=null){
String?l=userinfo[i].getName();
if(l.equals(usertag)){
k=i;
while(userinfo[k]!=null){
userinfo[k]=userinfo[k+1];
k++;
}
break;
}
}
try?{
removeMsg(usertag);
}?catch?(Exception?n)?{
try?{
removeMsg(usertag);
}?catch?(Exception?n2)?{}
}
}
}
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
//Connect()方法實現(xiàn)了對對方回應(yīng)本機信息的過程,
//其中第一以及最后一個為無用信息,在接受方被吸收掉
public?void?Connect(String?check){
try?{
CheckSocket=new?Socket(checkCHECK_PORT);
in=new?BufferedReader(new
InputStreamReader(CheckSocket.getInputStream()));
out=new?PrintWriter(CheckSocket.getOutputStream());
out.println(“--------------------------“);
out.flush();
out.println(tag);
out.flush();
out.println(InetAddress.getLocalHost().getHostAddress());
out.flush();
out.println(“---------------------------“);
out.flush();
}??catch?(Exception?e)?{
try?{
in.close();
out.close();
CheckSocket.close();
}?catch?(Exception?e1)?{
e1.printStackTrace();
}
e.printStackTrace();
}?finally{
try?{
in.close();
out.close();
CheckSocket.close();
}?catch?(Exception?e1)?{
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3555??2009-05-10?16:56??論文(終)\javaqq\Catcher.java
?????文件????????733??2009-05-06?17:54??論文(終)\javaqq\CheckIn.java
?????文件???????2725??2009-05-10?16:56??論文(終)\javaqq\GroupChatfr
?????文件???????2908??2006-11-21?18:28??論文(終)\javaqq\icon.gif
?????文件???????2908??2006-11-21?18:28??論文(終)\javaqq\image\icon.gif
?????文件??????16739??2006-11-18?17:38??論文(終)\javaqq\image\notice.jpg
?????文件??????15499??2006-11-17?12:29??論文(終)\javaqq\image\pic.jpg
?????文件??????12655??2006-11-17?23:41??論文(終)\javaqq\image\QQBG01.gif
?????目錄??????????0??2010-03-29?16:59??論文(終)\javaqq\image
?????文件???????1104??2009-05-10?16:56??論文(終)\javaqq\Listener.java
?????文件???????2131??2009-05-10?21:15??論文(終)\javaqq\Loadingfr
?????文件????????136??2009-05-06?17:54??論文(終)\javaqq\Loadingfr
?????文件???????1660??2009-05-06?17:54??論文(終)\javaqq\Logon.java
?????文件???????4605??2009-05-10?16:59??論文(終)\javaqq\MainChatfr
?????文件??????16739??2006-11-18?17:38??論文(終)\javaqq\notice.jpg
?????文件??????15499??2006-11-17?12:29??論文(終)\javaqq\pic.jpg
?????文件??????12655??2006-11-17?23:41??論文(終)\javaqq\QQBG01.gif
?????文件??????46960??2003-03-16?23:24??論文(終)\javaqq\sound\bell.WAV
?????文件???????4825??1998-10-29?17:43??論文(終)\javaqq\sound\Global.wav
?????文件??????33166??2003-03-17?07:07??論文(終)\javaqq\sound\reMsg.wav
?????文件???????3461??2001-08-21?19:23??論文(終)\javaqq\sound\system.wav
?????目錄??????????0??2009-06-10?13:44??論文(終)\javaqq\sound
?????文件???????4772??2009-05-10?16:56??論文(終)\javaqq\Statefr
?????文件????????985??2009-05-06?17:54??論文(終)\javaqq\TCPConnect.java
?????文件????????375??2009-05-06?17:54??論文(終)\javaqq\UserInfo.java
?????文件??????29515??2006-11-23?20:20??論文(終)\javaqq\狀態(tài)界面.jpg
?????文件??????51800??2006-11-23?20:17??論文(終)\javaqq\登錄界面.jpg
?????文件??????54476??2006-11-23?20:23??論文(終)\javaqq\群聊窗口.jpg
?????文件??????50634??2006-11-23?20:22??論文(終)\javaqq\聊天窗口.jpg
?????目錄??????????0??2009-06-10?13:44??論文(終)\javaqq
............此處省略7個文件信息
評論
共有 條評論