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

正文內(nèi)容

基于java局域網(wǎng)聊天程序的設(shè)計與實現(xiàn)(附源代碼)-在線瀏覽

2025-08-05 17:12本頁面
  

【正文】 享存儲進(jìn)行變量交換;在網(wǎng)絡(luò)時代,運行在不同主機上的程序按網(wǎng)絡(luò)協(xié)議進(jìn)行二進(jìn)制字符流交換,語義由交換雙方維護;在Java時代,運行在網(wǎng)絡(luò)上的程序進(jìn)程交換的是小應(yīng)用程序。Java會加速應(yīng)用軟件的小型化、網(wǎng)絡(luò)化的趨勢。信息的價值在于使用和共享,Internet和Web是信息的使用和共享最快捷、最便宜的方式,Word將演化成為Web寫作工具,Excel則將演化成Web電子表格。Java語言是一種面向?qū)ο蟮恼Z言,它通過提供最基本的方法來完成指定的任務(wù)。Java語言的設(shè)計集中于對象及其接口,它提供了簡單的類機制以及動態(tài)的接口模型,實現(xiàn)了模塊化和信息隱藏;而類則提供了一類對象的原型,并且通過繼承機制,子類可以使用父類所提供的方法,實現(xiàn)了代碼的復(fù)用。通過它提供的類庫可以處理TCP/IP協(xié)議,用戶可以通過URL地址在網(wǎng)絡(luò)上很方便地訪問其它對象。Java不支持指針, 一切對內(nèi)存的訪問都必須通過對象的實例變量來實現(xiàn),這樣就防止程序員使用 “特洛伊”木馬等欺騙手段訪問對象的私有成員,同時也避免了指針操作中容易產(chǎn)生的錯誤。這些指令對應(yīng)于Java虛擬機中的表示,Java解釋器得到字節(jié)碼后,對它進(jìn)行轉(zhuǎn)換,使之能夠在不同的平臺運行。另外,Java編譯器是由Java語言實現(xiàn)的,Java運行時系統(tǒng)由標(biāo)準(zhǔn)C實現(xiàn),這使得Java 系統(tǒng)本身也具有可移植性。字節(jié)碼本身攜帶了許多編譯時信息,使得連接過程更加簡單。多線程機制使應(yīng)用程序能夠并行執(zhí)行,而且同步機制保證了對共享數(shù)據(jù)的正確操作。Java的設(shè)計使它適合于一個不斷發(fā)展的環(huán)境。并且Java通過接口來支持多重繼承,使之比嚴(yán)格的類繼承具有更靈活的方式和擴展性。、多線程處理、例外處理、數(shù)學(xué)函數(shù)處理等,可以用它簡單地實現(xiàn)Java程序的運行平臺。,包括文件系統(tǒng)、 網(wǎng)絡(luò)、輸入。,提供了與Internet的接口。 JAVA語言在網(wǎng)絡(luò)上的應(yīng)用Java程序可以獲取網(wǎng)絡(luò)上結(jié)點的圖象、聲音、HTML文檔及文本等資源,并可以對獲得的資源進(jìn)行處理。 JavaBeans技術(shù)JavaBeans就是Java的可重用組件技術(shù)。JSP對于在Web應(yīng)用中集成JavaBeans 組件提供了完善的支持。 JavaBeans組件可以用來執(zhí)行復(fù)雜的計算任務(wù),或負(fù)責(zé)與數(shù)據(jù)庫的交互以及數(shù)據(jù)提取等。 IP/TCP協(xié)議常識(1)IP/TCP協(xié)議的特點:TCP/IP(Transmission Control Protocol/Internet Protocol)是傳輸控制協(xié)議/網(wǎng)際協(xié)議的縮寫, TCP/IP是當(dāng)今網(wǎng)絡(luò)互聯(lián)的核心協(xié)議。IP協(xié)議的作用:第一,它是網(wǎng)絡(luò)層的協(xié)議,提供互聯(lián)網(wǎng)上數(shù)據(jù)傳輸?shù)慕y(tǒng)一格式。第三,定義了互聯(lián)網(wǎng)上的傳輸數(shù)據(jù)的基本單元,提供了供路由選擇的信息,沒有差錯校驗和處理的機制。 統(tǒng)一分配網(wǎng)絡(luò)地址,使得每個TCP/IP 設(shè)備在網(wǎng)絡(luò)中都具有唯一的IP地址。(2)TCP/IP協(xié)議進(jìn)行傳輸數(shù)據(jù)傳輸?shù)倪^程:應(yīng)用程序為了傳輸數(shù)據(jù)會調(diào)用TCP,將數(shù)據(jù)和對應(yīng)的參數(shù)傳給TCP,將TCP 數(shù)據(jù)包封裝在IP包內(nèi),通過網(wǎng)絡(luò)送給目的TCP。TCP調(diào)用IP接口,向TCP提供所有TCP需要的服務(wù)。端口實際是一個16位長的 地址,他的范圍是0~65535之間,其中0~1023是熟知端口,主要是給提供服務(wù)的應(yīng)用程序使用,這些端口是所有應(yīng)用進(jìn)程都只道的,1024~65535為一般端口,也稱動態(tài)端口、連接端口,用來隨時分配要求通信的客戶端應(yīng)用程序。 Socket的簡介Socket,簡稱套接字,用于實現(xiàn)網(wǎng)絡(luò)上客戶和服務(wù)器之間的連接。具體的說:一個服務(wù)器應(yīng)用程序一般偵聽一個特定的端口等待客戶端的連接請求,當(dāng)一個連接請求到達(dá)時,客戶端和服武器端建立一個通信連接,在連接過程中,客戶端被分配一個本地端口與一個Socket建立連接,客戶端通過寫Socket來通知服務(wù)器,以讀Socket中的信息,類似的服務(wù)器也獲得一個本地端口,它需要一個新的端口號來偵聽原始端口上的其他連接請求。Socket程序的工作過程:建立Socket連接:在通信開始之前由通信雙方確認(rèn)身份,建立一條專用的虛擬連接通道。關(guān)閉:通信結(jié)束時,再將所建的虛擬連接拆除。事實上可以認(rèn)為它是若干不同技術(shù)的產(chǎn)物。P2P計算正是這種分散工作趨勢的必然結(jié)果。對功能強大的網(wǎng)絡(luò)計算機的需求以及昂貴的帶寬開銷,是對這種趨勢影響最大的兩個因素。除了技術(shù)方面之外的社會因素也是一個重要原因。這些產(chǎn)品提供了所謂的“killer apps”功能,能夠?qū)2P技術(shù)中的一部分下放到客戶端手中。 對等網(wǎng)絡(luò)的概念目前,業(yè)界對P2P的定義還沒有一個標(biāo)準(zhǔn)的說法,Intel將P2P技術(shù)定義為“通過系統(tǒng)間的直接交換達(dá)成計算機資源與信息的共享”。系統(tǒng)中成員同時扮演服務(wù)器與客戶端的角色。簡單地說,P2P技術(shù)是一種用于不同PC用戶之間、不經(jīng)過中繼設(shè)備直接交換數(shù)據(jù)或服務(wù)的技術(shù)。 對等網(wǎng)絡(luò)的主要系統(tǒng)結(jié)構(gòu)PZP模式的變化經(jīng)歷了集中式、分布式和混合式3個階段。每一個對等實體要對它所需共享的信息以及進(jìn)行的通信負(fù)責(zé)。集中式P2P模式則是所有網(wǎng)上提供的資料都存放在提供該資料的客戶機上,服務(wù)器上只保留索引信息,此外服務(wù)器與對等實體以及對等實體之間都具有交互能力。l 中央服務(wù)器的存在引起共享資源在版權(quán)問題上的糾紛,這也是直接導(dǎo)致Napster破產(chǎn)的原因。集中式P2P可提供中心服務(wù)器目錄檢索、管理服務(wù)和標(biāo)準(zhǔn)的點到點通信,具有高效的檢索和低效的交換服務(wù)的特點。 (2)分布式對等網(wǎng)絡(luò)在分布式P2P中,對等機通過與相鄰對等機之間的連接遍歷整個網(wǎng)絡(luò)體系。以Gnutella網(wǎng)絡(luò)為例,一臺新對等機首先通過訪問某特殊站點提供的主機緩存服務(wù)機制來得到一臺活動對等機地址,通過與它建立一個連接將自己接入Gnutella網(wǎng)絡(luò)。一旦定位了響應(yīng)查詢文件的對等機之后,就與響應(yīng)對等機建立TCP連接,通過HTTP協(xié)議從響應(yīng)對等機中下載自己查詢的文件。分布式對等網(wǎng)絡(luò)模型也存在很多弊端,主要表現(xiàn)在以下方面:l 搜索請求要經(jīng)過整個網(wǎng)絡(luò)或者至少是一個很大的范圍才能得到結(jié)果,因此,這種模式占用很多帶寬,而且需要花費很長時間才能有返回結(jié)果。l 純分布式的P2P模式很難被企業(yè)所利用,因為它缺少對網(wǎng)絡(luò)上的用戶節(jié)點數(shù)以及對他們提供的資源的一個總體把握。這種無中心、純分布式系統(tǒng)的特點是:它不再是簡單的點到點通信,而是更高效、更復(fù)雜的網(wǎng)絡(luò)通信?;旌鲜絇2P結(jié)合了集中式和分布式P2P的優(yōu)點,在設(shè)計思想和處理能力上都得到了進(jìn)一步的優(yōu)化。這些節(jié)點共分為3種:l 用戶節(jié)點:普通節(jié)點,它不具有任何特殊的功能。l 索引節(jié)點:連接速度快、內(nèi)存充足的節(jié)點可以作為索引節(jié)點。在第三代P2P的軟件體系結(jié)構(gòu)中,采用了混合式P2P。這種模式的關(guān)鍵之二是引入搜索節(jié)點,搜索節(jié)點管理著所屬用戶的文件列表。當(dāng)用戶發(fā)出搜索請求后,如果和用戶節(jié)點直接相連的搜索節(jié)點查詢結(jié)果達(dá)到100個就停止。若所有的搜索節(jié)點都被訪問過,就意味著整個網(wǎng)絡(luò)上的節(jié)點都被搜索到了,其速度要比純P2P模式快得多。因此開發(fā)網(wǎng)絡(luò)聊天是相當(dāng)有必要,而且在網(wǎng)站內(nèi)增加聊天功能,它不僅可以提高網(wǎng)站的訪問量,同時可以留著訪客,更重要的是讓訪客透過聊天室實時的互相交流。本人原來學(xué)習(xí)過JAVA語言,對P2P技術(shù)以及網(wǎng)絡(luò)編程也較有興趣,為了更好的考驗自己對JAVA語言的掌握程度,以及能更深入的理解P2P技術(shù)的內(nèi)涵,本人就決定以《基于JAVA局域網(wǎng)聊天程序設(shè)計與實現(xiàn)》為畢業(yè)設(shè)計,希望通過這一次的能進(jìn)一步提高本人的網(wǎng)絡(luò)編程的能力。這并不同于傳統(tǒng)的一服務(wù)器多客戶端的網(wǎng)絡(luò)結(jié)構(gòu),而是多服務(wù)器多客戶端的網(wǎng)絡(luò)結(jié)構(gòu),服務(wù)器與客戶端一一綁定,數(shù)量相等。所以,我的程序大致可分為服務(wù)器模塊和客戶端模塊來進(jìn)行分析。以上就是服務(wù)器模塊最主要的兩個任務(wù)。除此之外,本系統(tǒng)還講實現(xiàn)群聊功能:,用UDP技術(shù)通過廣播的方式把消息傳遞給局域網(wǎng)內(nèi)每個用戶的手中。 3 JAVAqq局域網(wǎng)聊天程序的系統(tǒng)分析與設(shè)計 JAVAqq局域網(wǎng)聊天程序的總體設(shè)計要點 聊天系統(tǒng)的設(shè)計跟普通網(wǎng)站設(shè)計有著許多不同的地方,普通網(wǎng)站設(shè)計所考慮的因素,例如,普通網(wǎng)站需要對布局進(jìn)入大量美化以及動畫設(shè)計等等,而聊天室只要提供滿足訪客雙方直接實時聊天即可。因此,程序要在TCP/IP環(huán)境下,實現(xiàn)服務(wù)器和客戶端兩個模塊的程序。如果有用戶連接請求,則建立一個Socket,將客戶端地址賦給這個Socket??蛻舳四K工作流程客戶端程序相對簡單,只需要建立一個Socket與服務(wù)器模塊連接,成功后通過這個Socket來發(fā)送和接收數(shù)據(jù)就可以了。 JAVAqq局域網(wǎng)聊天程序的設(shè)計步驟及功能模塊劃分 聊天系統(tǒng)工作原理圖 JAVAqq局域網(wǎng)聊天程序各功能模塊1.LoadingFrame(源代碼見附錄,下同) public void init(){//登陸界面的初始化方法 setTitle(登錄)。 …… setLocation(387, 234)。 setVisible(true)。 (this)。//講“取消”按鈕加入到事件偵聽器中 (this)。 }public void actionPerformed(ActionEvent e) { if(()==loadBtn||()==nameText){//創(chuàng)建客戶端主界面 text=()。 dispose()。 (0)。在后期的完善中,會完成記住用戶名及自動登錄功能。2.StateFrame public final static int DEFAULT_PORT=8322。 public final static int TCP_PORT=6322。 int s=()。//獲取對方IP try { socket=new Socket(address,TCP_PORT)。//啟動私聊主界面 } catch (Exception e1) {()。 ……//初始化UDP協(xié)議端口信息 //首先向已在線的程序發(fā)送本機的IP以及請求響應(yīng)并對相應(yīng)的組播端進(jìn)行監(jiān)聽 public void JoinGroup(){ try { group=()。//初始化登錄信息組 socket=new DatagramSocket()。 byte nametag[]=new byte[20]。 //發(fā)送一個登錄信息給已登錄的用戶,通知他們本程序上線。 packet=new DatagramPacket(notify,groupC,CATCH_PORT)。 socketC=new MulticastSocket(CATCH_PORT)。 Catcher catcher=new Catcher(socketC,this,name,userinfo)。 } catch (Exception e) { ()。讓其可順利生成各個聊天主界面。 while(true){ byte[] Rdata=new byte[256]。 (packet)。 int num=(count)。 String check=new String(()).substring(1+num,()1)。 String usertag=new String (()).substring(1,num+1)。 in=new BufferedReader(new InputStreamReader(()))?!脕韺Φ卿浶畔⒌谋O(jiān)聽,并解析傳送過來的數(shù)據(jù)包。 packet=new DatagramPacket(Rdata,)。 //并傳給MulticastSocket對象 (new String(()))。ring()。}} 用來對群消息的監(jiān)聽及處理,將接收到的消息打包,傳給MulticastSocket對象,再利用CheckIn和Logon對象進(jìn)行處理。 } catch (IOException e) {()。 Logon ll=new Logon(sf,client,userinfo)。} } catch (IOException e) {()。 Try{ msg=receiveMsg()。//獲取對方的名字 msg=receiveMsg()。//獲取對方的IP { k=()。 } (userinfo[k].getName())?!? } } public String receiveMsg()throws IOException{//接收數(shù)據(jù) String msg=new String()。 } catch (IOException e) {……} return msg。7.TCPConnectpublic void run(){ try { listen=new ServerSocket(port)。//建立TCP連接 } catch (Exception e) { processMsg(群聊功能仍可使用)。 MainChatFrame mf=new MainChatFrame(client,name)。8.UserInfopublic class UserInfo {//初始化用戶信息,姓名以及IP地址,姓名是通過登錄界面由用戶鍵入的,IP//地址是程序直接由機器獲取的 private String name。 public UserInfo(String name, String ip) { = name。} public String getIP() {return IP。} public String getName() {return name。}} 記錄IP及用戶名。 processMsg(I:+())。
點擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1