freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

最新基于java局域網(wǎng)聊天程序設(shè)計與實(shí)現(xiàn)附源代碼-文庫吧資料

2025-06-25 13:32本頁面
  

【正文】 目。平時自己也常到其它聊天室進(jìn)行聊天,自己也曾想過以后學(xué)會了軟件編程就一定親自設(shè)計一款聊天軟件。目前本聊天系統(tǒng)還有待完善的功能如下:1. 完成記住密碼及自動登錄功能.2. 完成用戶隱身功能3. 在建立TCP對話之前要征詢對方是否同意建立連接4. 用記事本完成對聊天記錄的保存5. 實(shí)現(xiàn)局域網(wǎng)的文件傳輸盡管畢業(yè)設(shè)計到現(xiàn)在已接近尾聲,但是對于上述的缺陷,本人還會不斷對這套聊天軟件進(jìn)一步的完善它,期望在今后的日子里把系統(tǒng)做成一套受歡迎的聊天系統(tǒng)。但幾乎每一個計算機(jī)軟件都會有這樣那樣的BUG,尤其是未經(jīng)過精心設(shè)計維護(hù)的非商業(yè)軟件。最終效果:圖1 登陸界面圖2 客戶端主界面圖3 聊天室主界面 發(fā)送窗口顯示信息圖4 私聊界面 結(jié) 論1 畢業(yè)設(shè)計總結(jié)和展望服務(wù)器線程在程序運(yùn)行期間一直有效,接受客戶端請求信息,轉(zhuǎn)發(fā)客戶端聊天內(nèi)容,查看用戶信息。 硬件環(huán)境 本系統(tǒng)運(yùn)行環(huán)境所需用到的環(huán)境為:硬件配置 :中央處理器(CPU) :Intel Core Duo processor T2250;硬 盤:40GB HDD;內(nèi) 存:1G 667HZ;顯示器:” WXGA CrystalBrite LCD;顯 卡:Up to 256MB NVIDIA GeForce Go 7300軟件環(huán)境:WINDOWS XP、MyEclipse 、。 4 JAVAqq局域網(wǎng)聊天程序的設(shè)計與實(shí)現(xiàn) 開發(fā)環(huán)境工具基于JAVA聊天系統(tǒng)的設(shè)計主要運(yùn)用JAVA與語言與Socket類開發(fā)。11.LoadingFrameDemopublic class LoadingFrameDemo {//主方法程序 public static void main(String[] args) { new LoadingFrame().init()。 } …… }})。 ()。 (new ActionListener(){//發(fā)送信息的監(jiān)聽器 public void actionPerformed(ActionEvent e) { try{ byte[] dataS=(name+:+()).getBytes()。 ()。 =new DatagramPacket(dataS,)。\n39。 …… } 顯示點(diǎn)對點(diǎn)聊天窗口,建立接收和發(fā)送數(shù)據(jù)的監(jiān)聽。 ()。 …… (new ActionListener(){//發(fā)送信息的監(jiān)聽器 public void actionPerformed(ActionEvent e) { try { sendMsg(())。 ()。9.MainChatFramepublic void init(String name){//傳入的參數(shù)為自身的用戶名 …… (new ActionListener(){//接收信息的監(jiān)聽器 public void actionPerformed(ActionEvent e) { try { sendMsg(())。} public void setName(String name) { = name。} public void setIP(String ip) {IP = ip。IP = ip。 private String IP。//啟動一個私聊主界面 } …… } 根據(jù)所得到對方的IP信息建立一個TCP連接,并啟動一個私聊主界面,進(jìn)行TCP通信。//建立失敗,不過還可以群聊 } …… while(true){ Socket client = ()。 processMsg(正在監(jiān)聽TCP端口………)。 }5和6主要完成對群消息的處理,5主要完成對信息的解包,顯示等等;而6主要是對TCP連接的信息的接收,以及對用戶信息的保存。 try { msg=()。 msg=receiveMsg()。 userinfo[k]=new UserInfo(name,ip)。 ip=msg。 name=msg。 }}6.Logon public void run(){//run()方法實(shí)現(xiàn)對回應(yīng)的TCP連接的信息的接收,并且完成對UserInfo信息的保存 String msg=null。 ()。} try { while(true){ client=()。5.CheckIn//對回應(yīng)信息的端口的監(jiān)聽,一旦收到回應(yīng)信息則開啟一個新線程對其進(jìn)行信息的接收 public void run(){ try { Check=new ServerSocket(CHECK_PORT)。 } } catch (IOException e) { ()。 (true)。//用Rdata數(shù)組來接收數(shù)據(jù), (packet)。4.Listenerpublic void run(){ try {while(true){ byte[] Rdata=new byte[256]。 out=new PrintWriter(())。 if((C)){//judge為“C”時反送一個含有對方用戶名以及本機(jī)的IP的數(shù)據(jù)包到組播組 …… } public void Connect(String check){ //Connect()方法實(shí)現(xiàn)了對對方回應(yīng)本機(jī)信息的過程, //其中第一以及最后一個為無用信息,在接受方被吸收掉 …… CheckSocket=new Socket(check,CHECK_PORT)。 //check為數(shù)據(jù)包的IP地址 String judge=new String(()).substring(0,1)。 //count記錄了數(shù)據(jù)包的最后一位數(shù),也就是記錄了用戶名的長度。//等待接受數(shù)據(jù)包 String count=new String(()).substring(()1,())。 packet=new DatagramPacket(Rdata,)。3.Catcher//實(shí)現(xiàn)對組播端口的監(jiān)聽,并作出反映 public void run(){ try {socket=new DatagramSocket()。 }} 用來顯示用用戶名及在線人的窗口,并對窗口中各組件實(shí)施監(jiān)聽。 CheckIn login=new CheckIn(this,userinfo)。 (groupC)。 (packet)。 //包的數(shù)據(jù)結(jié)構(gòu)為:判斷位+用戶名+IP地扯+用戶名長度 notify=new String(C+name +().getHostAddress()+()).getBytes()。 nametag=()。 byte notify[]=new byte[100]。 //初始化廣播聊天信息組 groupC=()。} }})。//建立連接 MainChatFrame mf=new MainChatFrame(socket,userinfo[s].getName())。 String address=userinfo[s].getIP()。//默認(rèn)TCP連接端口 public void init(){//初始化應(yīng)用程序窗口…… (new ActionListener(){//用ActionListener接口來對圖形界面中的各個組件進(jìn)行監(jiān)聽 public void actionPerformed(ActionEvent e) { //雙擊登錄到列表框內(nèi)容時觸發(fā)的事件為連通列表框中的IP,建立TCP通信 Socket socket。//默認(rèn)端口 public final static int CATCH_PORT=7322。主要通過將用戶名寫入一個記事本保存起來。 } } 程序的登錄窗口,從此窗口中,輸入用戶名,點(diǎn)擊“登陸”來初始化一個StateFrame對象,并在顯示器上顯示出客戶端的主界面。 }else if(()==cancelBtn){//取消登錄,推出程序 dispose()。 new StateFrame(text)。//講輸入用戶名的文本框加入到事件偵聽器中 (false)。//將“登陸”按鈕加入到事件偵聽器中 (this)。 setDefaultCloseOperation(3)。 setSize(350,300)。 setIconImage((new ImageIcon(\\image\\)).getImage())。系統(tǒng)通過ActionListener接口來監(jiān)聽用戶的對按鈕的點(diǎn)擊,來啟動各聊天窗口進(jìn)行相關(guān)工作,如私聊,群聊等。然后就可以相互傳遞信息了。服務(wù)器模塊工作流程服務(wù)器模塊通過socket()系統(tǒng)調(diào)用創(chuàng)建一個Socket數(shù)組后,與指定的本地端口綁定,就可以在端口進(jìn)行偵聽listen()。因此,在設(shè)計聊天系統(tǒng)的過程中,必須要考慮好以下幾個設(shè)計要點(diǎn):實(shí)現(xiàn)思想局域網(wǎng)基于P2P上的聊天程序一般都是以服務(wù)器模塊提供連接響應(yīng),使用者通過客戶端模塊連接,與用戶交談,這是一個面向連接的通信過程。從原理上講,跟實(shí)現(xiàn)客戶端的原理差不多,只不過這里不是點(diǎn)對點(diǎn)兩人通信。客戶端應(yīng)該完成的工作包括:,若成功,通過ServerSocket進(jìn)行連接,端口默認(rèn)為5001。若有需求,就建立連接,接收消息,通過ActionListener接口進(jìn)行偵聽,當(dāng)用戶點(diǎn)擊按鈕后,啟動一個聊天界面,將消息通過客戶端模塊顯示出來。首先介紹一下服務(wù)器模塊的任務(wù):,并且不斷進(jìn)行偵聽是否有客戶端模塊連接或者斷開連接。不過,從原理上看,這還是C/S模式。 需求分析基于P2P的聊天系統(tǒng),用戶既是服務(wù)器端也是客戶端。現(xiàn)在Intranet網(wǎng)絡(luò)在企業(yè)中越來越流行,不需要連入廣域網(wǎng)就實(shí)現(xiàn)實(shí)時消息傳遞的系統(tǒng)由于其優(yōu)越的性能受到企業(yè)的青睞。 2 JAVAqq局域網(wǎng)聊天程序的需求分析 課題來源根據(jù)當(dāng)前網(wǎng)絡(luò)的需求,網(wǎng)絡(luò)聊天越來越受各種網(wǎng)民所青睞。如果不足100個,就向相鄰的搜索節(jié)點(diǎn)發(fā)出請求,如果查詢結(jié)果還不夠,就繼續(xù)向外快速發(fā)散,直到所有的搜索節(jié)點(diǎn)都被搜索到為止。用戶節(jié)點(diǎn)通過索引節(jié)點(diǎn)獲得搜索節(jié)點(diǎn)信息,之后用戶節(jié)點(diǎn)就與獲得的搜索節(jié)點(diǎn)相連,每一次查詢都通過該搜索節(jié)點(diǎn)進(jìn)行。這種模式的關(guān)鍵之一是引入了索引節(jié)點(diǎn),索引節(jié)點(diǎn)不會直接連接到有版權(quán)的資料上,它就像搜索引擎一樣,只是搜索和所需資料相關(guān)的地址,至于用戶到底連接下載了什么內(nèi)容則和它無關(guān)。索引節(jié)點(diǎn)用于保存可以利用的搜索節(jié)點(diǎn)信息,并搜集狀態(tài)信息,維護(hù)網(wǎng)絡(luò)結(jié)構(gòu)信息。l 搜索節(jié)點(diǎn):處理搜索請求,從它們的孩子節(jié)點(diǎn)中搜索文件列表,這些節(jié)點(diǎn)必須有128 kbit/s RAM的網(wǎng)絡(luò)連接速度,建議使用高性能的處理器。它在分布式模式的基礎(chǔ)上,將用戶節(jié)點(diǎn)按能力進(jìn)行分類,使某些節(jié)點(diǎn)擔(dān)任特殊的任務(wù)。(3)混合P2P網(wǎng)絡(luò)集中式P2P有利于網(wǎng)絡(luò)資源的快速檢索,并且只要服務(wù)器能力足夠強(qiáng)大就可以無限擴(kuò)展,但是其中心化的模式容易遭到直接的攻擊:分布式P2P解決了抗攻擊問題,但是又缺乏快速搜索和可擴(kuò)展性。l 安全性不高,易遭受惡意攻擊。l 隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大,通過擴(kuò)散方式定位對等點(diǎn)及查詢信息的方法將會造成網(wǎng)絡(luò)流量增加,導(dǎo)致網(wǎng)絡(luò)擁塞,最終使Gnutella網(wǎng)絡(luò)被分片,因此,網(wǎng)絡(luò)的可擴(kuò)展性不好,不適合大型網(wǎng)絡(luò)。文件的傳輸不再經(jīng)過Gnutella網(wǎng)絡(luò)進(jìn)行。接著,該新對等機(jī)主動探查網(wǎng)絡(luò)中的其它對等機(jī),找到與之相鄰的對等機(jī)節(jié)點(diǎn),在進(jìn)行文件查找時,該對等機(jī)首先向與之相鄰的所有活動對等點(diǎn)發(fā)送一個查詢描述符Query,在其他對等機(jī)接收到該查詢描述符后,檢查本地是否有符合查詢請求的文件內(nèi)容,如果有,則按查詢描述符的發(fā)送路徑返回一個查詢響應(yīng)描述符QueryHit,無論本地是否存在符合查詢請求的文件內(nèi)容,其他對等機(jī)都會將該查詢包通過擴(kuò)散方式繼續(xù)在網(wǎng)絡(luò)中傳遞,直至查詢包中TTL屬性值遞減為0時才停止繼續(xù)轉(zhuǎn)發(fā)。每個對等機(jī)在功能上都是相似的,并沒有專門的服務(wù)器,而對等機(jī)必須依靠它們所在的分布網(wǎng)絡(luò)來查找文件和定位其他對等機(jī)。集中式P2P對小型網(wǎng)絡(luò)而言在管理和控制方面占有一定的優(yōu)勢,但對大型網(wǎng)絡(luò)并不適合。l 缺乏有效的強(qiáng)制共享機(jī)制,資源可用性差。集中目錄式PZP模型還存在很多問題,主要表現(xiàn)為:l 中央服務(wù)器的癱瘓將導(dǎo)致整個網(wǎng)絡(luò)的崩潰,可靠性和安全性較低:l 隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大,中央目錄服務(wù)器維護(hù)和更新的費(fèi)用將急劇增加,所需成本過高。這種形式具有中心化的特點(diǎn),但是它不同于傳統(tǒng)意義上的C/S模式。(1)集中式對等網(wǎng)絡(luò)集中式P2P模式由一個中心服務(wù)器來負(fù)責(zé)記錄共享信息以及反饋查詢。它打破了傳統(tǒng)的C/S模式,在對等網(wǎng)絡(luò)中,每個節(jié)點(diǎn)的地位都是相同的,具備客戶端和服務(wù)器雙重特性,可以同時作為服務(wù)使用者和服務(wù)提供者。系統(tǒng)應(yīng)用的用戶能夠意識到彼此的存在而構(gòu)成一個虛擬或?qū)嶋H的群體。IBM則把它看成是由若干互聯(lián)協(xié)作的計算機(jī)構(gòu)成的系統(tǒng)并具備如下若干特性之一:系統(tǒng)依存于邊緣化設(shè)備的主動協(xié)作,每個成員直接從其他成員而不是從服務(wù)器的參與中受益。這種第一手的體驗(yàn),使得人們越來越關(guān)注P2P技術(shù)。毫無疑問,人們現(xiàn)在對P2P計算技術(shù)的熱切關(guān)注起源于Napster,Scour,Gnutella,以及即時通訊類的相關(guān)產(chǎn)品。為了提高效率,P2P計算由許多互相連接的同位體組
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1