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

正文內(nèi)容

java----基于java局域網(wǎng)聊天程序設(shè)計(jì)與實(shí)現(xiàn)+源碼+英語(yǔ)文獻(xiàn)及翻譯(文件)

 

【正文】 實(shí)踐相結(jié)合,增強(qiáng)了我專(zhuān)業(yè)技能的可實(shí)踐性。最后,請(qǐng)?jiān)试S我再一次向畢業(yè)期間無(wú)私幫助過(guò)我的老師,同學(xué)和朋友表示最衷心的感謝。 import .*。 private Icon icon=new ImageIcon(\\image\\)。 private JLabel nameLabel=new JLabel(用戶名 )。 private JCheckBox autoCheckBox=new JCheckBox(自動(dòng)登陸 )。 public LoadingFrame(){ } public void init(){ setTitle(登錄 )。 (label)。 (nameText)。 (choosePanel)。 (btnPanel)。 setDefaultCloseOperation(3)。 (false)。 }else if(()==cancelBtn){ dispose()。 import .*。 import .*。 JPanel southPanel=new JPanel()。 JLabel nameLabel=new JLabel()。 GroupChatFrame groupchat。 public final static int CATCH_PORT=7322。 IAddress groupC。 MulticastSocket socketC。 工程技術(shù)學(xué)院 畢業(yè)設(shè)計(jì)(論文)專(zhuān)用紙 34 groupchat=new GroupChatFrame(this)。 groupListener()。 packet=new DatagramPacket(notice,groupC,CATCH_PORT)。 (0)。 (name)。 (northPanel,)。 String address=userinfo[s].getIP()。 (new ActionListener(){ public void actionPerformed(ActionEvent e) { //雙擊登錄到列表框內(nèi)容 時(shí)觸發(fā)的事件為連通列表框中的 IP,建立 TCP通信 Socket socket。 (stateLabel)。 (new BorderLayout(5,5))。 } catch (Exception e1) { ()。 } protected void processWindowEvent(WindowEvent e){ (e)。 JoinGroup()。 Listener listener。 DatagramSocket s=null。 DatagramSocket socket=null。 ServerSocket listen_socket。 工程技術(shù)學(xué)院 畢業(yè)設(shè)計(jì)(論文)專(zhuān)用紙 33 List friList=new List()。 Icon icon=new ImageIcon(\\image\\)。 JPanel northPanel=new JPanel(new GridLayout(1,2))。 import .*。 } } } 2,StateFrame 用來(lái)顯示用用戶名及在線人的窗口。 new StateFrame(text)。 (this)。 setSize(350,300)。 (loadBtn)。 (reCheckBox)。 (())。 setLayout(new GridLayout(3,1))。 private JButton cancelBtn=new JButton(取消 )。 private JPanel choosePanel=new JPanel()。 private JPanel panel=new JPanel()。 import .*。主要通過(guò)將用戶 名寫(xiě)入一個(gè)記事本保存起來(lái)。通過(guò)這次的畢業(yè)設(shè)計(jì),我第一次真正了解了軟件設(shè)計(jì)的整個(gè)過(guò)程,既鞏固了以前的理論知識(shí),也為我以后的進(jìn)一步深造和工作奠定了基礎(chǔ)。在這次的畢業(yè)設(shè)計(jì)中,我遇到了許多困難,一度想過(guò)放棄,但是在老師同學(xué)們的幫助下,我挺過(guò)來(lái)了。其次,我還要感謝跟我同組的曾雷、葉標(biāo)、孔自強(qiáng)和朱振飛同學(xué),在我跟他們討論畢業(yè)設(shè)計(jì)的相關(guān)問(wèn)題時(shí),他們給了我很多很有建設(shè)性的建議,讓我在軟件設(shè)計(jì)初期沒(méi)有走彎路。 在學(xué)習(xí)期間,本人還通過(guò)網(wǎng)上的各種 JAVA 源代碼進(jìn)行學(xué)習(xí)與研究,我原以為這樣的水平將無(wú)法完成畢業(yè)設(shè)計(jì),但當(dāng)掌 握了部分應(yīng)用技巧時(shí),剩下的聊天系統(tǒng)思路的設(shè)計(jì)就不是障礙了。憑著探索新知識(shí)的熱情,我選擇了該設(shè)計(jì)題目。本聊天程序?qū)τ诔跎娲祟I(lǐng)域的畢業(yè)設(shè)計(jì)課題來(lái)說(shuō),尤其在開(kāi)始初期,感覺(jué)邏輯非常復(fù)雜,難以控制,因此至今還有許多未能解決的問(wèn)題。 服務(wù)器線程在程序運(yùn)行期間一直有效,接受客戶端請(qǐng)求信 息,轉(zhuǎn)發(fā)客戶端聊天內(nèi)容, 查看用戶信息。其開(kāi)發(fā)的主要環(huán)境包括 ( Windows 平臺(tái)) : java 環(huán)境 jdk,建議采用 以上,另外還需配置 classpath 環(huán)境變量,本系統(tǒng)開(kāi)發(fā)工具為 。} 顯示群聊天窗口。 =new DatagramPacket(dataS,)。 ()。 10. GroupChatFrame public void eventHandle(){ (new KeyListener(){//接收信息的監(jiān)聽(tīng) 器 public void keyPressed(KeyEvent e) { if(()==39。 processMsg(I:+())。 processMsg(I:+())。} public String getName() {return name。 public UserInfo(String name, String ip) { = name。 MainChatFrame mf=new MainChatFrame(client,name)。 7. TCPConnect public void run(){ try { 工程技術(shù)學(xué)院 畢業(yè)設(shè)計(jì)(論文)專(zhuān)用紙 20 listen=new ServerSocket(port)。 ?? } } public String receiveMsg()throws IOException{//接收數(shù)據(jù) String msg=new String()。//獲取對(duì)方的 IP { k=()。 Try{ msg=receiveMsg()。 Logon ll=new Logon(sf,client,userinfo)。}} 用來(lái)對(duì)群消息的監(jiān)聽(tīng)及處理,將接收到的消息打包,傳給MulticastSocket 對(duì)象 , 再利用 CheckIn 和 Logon 對(duì)象進(jìn)行處理 。 //并傳給MulticastSocket對(duì)象 (new String(()))。 ?? 用來(lái)對(duì)登錄信息的監(jiān)聽(tīng),并解析傳送過(guò)來(lái)的數(shù)據(jù)包。 String usertag=new String (()).substring(1,num+1)。 int num=(count)。 工程技術(shù)學(xué)院 畢業(yè)設(shè)計(jì)(論文)專(zhuān)用紙 17 while(true){ byte[] Rdata=new byte[256]。 } catch (Exception e) { ()。 socketC=new MulticastSocket(CATCH_PORT)。 //發(fā)送一個(gè)登錄信息給已登錄的用戶,通知他們本程序上線。//初始化登錄信息組 socket=new DatagramSocket()。 //啟動(dòng)私聊主界面 工程技術(shù)學(xué)院 畢業(yè)設(shè)計(jì)(論文)專(zhuān)用紙 16 } catch (Exception e1) {()。 int s=()。 2. StateFrame public final static int DEFAULT_PORT=8322。 (0)。 } public void actionPerformed(ActionEvent e) { if(()==loadBtn||()==nameText){//創(chuàng)建客戶端主界面 工程技術(shù)學(xué)院 畢業(yè)設(shè)計(jì)(論文)專(zhuān)用紙 15 text=()。 (this)。 ?? setLocation(387, 234)。 客戶端 模塊 工作流程 客戶端程序相對(duì)簡(jiǎn)單,只需要建立一個(gè) Socket 與服務(wù)器 模塊 連接,成功后通過(guò)這個(gè) Socket 來(lái)發(fā)送和接收數(shù)據(jù)就可以了。因此,程序要在 TCP/IP 環(huán)境下,實(shí)現(xiàn)服務(wù)器和客戶端兩 個(gè)模塊的 程序。 工程技術(shù)學(xué)院 畢業(yè)設(shè)計(jì)(論文)專(zhuān)用紙 12 除此之外,本系統(tǒng)還講實(shí)現(xiàn)群聊功能:默認(rèn) 為廣播地址,用UDP 技術(shù)通過(guò)廣播的方式把消息傳遞給局域網(wǎng)內(nèi)每個(gè)用戶的手中。 以上就是服務(wù)器 模塊 最主要的兩個(gè)任務(wù)。 所以,我的程序大致可分為服務(wù)器模塊和客戶端模塊來(lái)進(jìn)行分析。本人原來(lái)學(xué)習(xí)過(guò) JAVA 語(yǔ)言,對(duì) P2P 技術(shù)以及網(wǎng)絡(luò)編程也較有興趣,為了更好的考驗(yàn)自己對(duì) JAVA 語(yǔ)言的掌握程度,以及能更深入的理解 P2P 技術(shù)的內(nèi)涵,本人就決定以《基于 JAVA 局域網(wǎng)聊天程序設(shè)計(jì)與實(shí)現(xiàn)》為畢業(yè)設(shè)計(jì),希望通過(guò)這一次的能進(jìn)一步提高本人的網(wǎng)絡(luò)編程的能力。若所有的搜索節(jié)點(diǎn)都被訪問(wèn)過(guò),就意味著整個(gè)網(wǎng)絡(luò)上的節(jié)點(diǎn)都被搜索到了,其速度要比純 P2P 模式快得多。這種模式的關(guān)鍵之二是引入搜索節(jié)點(diǎn),搜索節(jié)點(diǎn)管理著所屬用戶的文件列表。 ? 索引節(jié)點(diǎn) :連接速度快、內(nèi)存充足的節(jié)點(diǎn)可以作為索引節(jié)點(diǎn)?;旌鲜?P2P 結(jié)合了集中式和分布式 P2P 的優(yōu)點(diǎn),在設(shè)計(jì)思想和處理能力上都得到了進(jìn)一步的優(yōu)化。 ? 純分布式的 P2P 模式很難被企業(yè)所利用,因?yàn)樗鄙賹?duì)網(wǎng)絡(luò)上的用戶節(jié)點(diǎn)數(shù)以及對(duì)他們提供的資源的一個(gè)總體把握。一旦定位了響應(yīng)查詢文件的對(duì)等機(jī)之后,就與響應(yīng)對(duì)等機(jī)建立 TCP連接,通過(guò) HTTP 協(xié)議從響應(yīng)對(duì)等機(jī)中下載自己查詢的文件。 (2)分布式對(duì)等網(wǎng)絡(luò) 在分布式 P2P 中,對(duì)等機(jī)通過(guò)與相鄰對(duì)等機(jī)之間的連接遍歷整個(gè)網(wǎng)絡(luò)體系。 ? 中央服務(wù)器的存在引起共享資源在版權(quán)問(wèn)題上的糾紛,這也是直接導(dǎo)致 Napster 破產(chǎn)的原因 。每一個(gè)對(duì)等實(shí)體要對(duì)它所需共享的信息以及進(jìn)行的通信負(fù)責(zé)。 簡(jiǎn)單地說(shuō), P2P 技術(shù)是一種用于不同 PC 用戶之間、不經(jīng)過(guò)中繼設(shè)備直接交換數(shù)據(jù)或服務(wù)的技術(shù)。 對(duì)等網(wǎng)絡(luò)的概念 1 服務(wù)器 socket 2 監(jiān)聽(tīng) 4 接收 5 讀 6 寫(xiě) 7 關(guān)閉 3 客戶端 etsocket 6 寫(xiě) 5 讀 7 關(guān)閉 工程技術(shù)學(xué)院 畢業(yè)設(shè)計(jì)(論文)專(zhuān)用紙 8 目前,業(yè)界對(duì) P2P 的定義還沒(méi)有一個(gè)標(biāo)準(zhǔn)的說(shuō)法, Intel 將 P2P 技術(shù)定義為“通過(guò)系統(tǒng)間的直接交換達(dá)成計(jì)算機(jī)資源與信息的共享”。 除了技術(shù)方面之外的 社會(huì)因素也是一個(gè)重要原因。 P2P計(jì)算正是這種分散工作趨勢(shì)的必然結(jié)果。 關(guān)閉:通信結(jié)束時(shí),再將所建的虛擬連接拆除。 具體的說(shuō):一個(gè)服務(wù)器應(yīng)用程序一般偵聽(tīng)一個(gè)特定的端口等待客戶端的連接請(qǐng)求,當(dāng)一個(gè)連接請(qǐng)求到達(dá)時(shí),客戶端和服武器端建立一個(gè)通信連接,在連接過(guò)程中,客戶端被分配一個(gè)本地端口與一個(gè) Socket 建立連接,客戶端通過(guò)寫(xiě) Socket 來(lái)通知服務(wù)器,以讀 Socket 中的信息,類(lèi)似的服務(wù)器也獲得一個(gè)本地端口,它需要一個(gè)新的端口號(hào)來(lái)偵聽(tīng)原始端口上的其他連接請(qǐng)求。端口實(shí)際是一個(gè) 16 位長(zhǎng)的 地址,他的范圍是 0~ 65535 之間,其中 0~ 1023是熟知端口,主要是給提供服務(wù)的應(yīng)用程序使用,這些端口是所有應(yīng)用進(jìn)程都只道的, 1024~ 65535 為一般端口,也稱動(dòng)態(tài)端口、連接端口,用來(lái)隨時(shí)分配要求通信的客戶端應(yīng)用程序。 (2)TCP/IP 協(xié)議進(jìn)行傳輸數(shù)據(jù)傳輸?shù)倪^(guò)程: 工程技術(shù)學(xué)院 畢業(yè)設(shè)計(jì)(論文)專(zhuān)用紙 6 應(yīng)用程序?yàn)榱藗鬏敂?shù)據(jù)會(huì)調(diào)用 TCP,將數(shù)據(jù)和對(duì)應(yīng)的參數(shù)傳給 TCP,將TCP 數(shù)據(jù)包封裝在 IP 包內(nèi),通過(guò)網(wǎng)絡(luò)送給目的 TCP。第三,定義了互聯(lián)網(wǎng)上的傳輸數(shù)據(jù)的基本單元,提供了供路由選擇的信息,沒(méi)有差錯(cuò)校驗(yàn)和處理的機(jī)制。 IP/TCP 協(xié)議常識(shí) (1)IP/TCP 協(xié)議
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1