“基于Socket的網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”課程設(shè)計(jì)報(bào)告_第1頁
“基于Socket的網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”課程設(shè)計(jì)報(bào)告_第2頁
“基于Socket的網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”課程設(shè)計(jì)報(bào)告_第3頁
“基于Socket的網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”課程設(shè)計(jì)報(bào)告_第4頁
“基于Socket的網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告學(xué)院:計(jì)算機(jī)科學(xué)學(xué)院專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):08級(jí)01班姓名:學(xué)號(hào): 小組成員: A B C D E F 2011-7-13項(xiàng)目內(nèi)容:基于Socket的網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)實(shí)驗(yàn)?zāi)康模夯赟ocket套接口,實(shí)現(xiàn)網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),讓我們掌握Socket的編程技術(shù)及網(wǎng)絡(luò)服務(wù)的技術(shù),讓同學(xué)們更加深刻的了解,并掌握這方面的知識(shí)。實(shí)驗(yàn)環(huán)境:操作系統(tǒng):windows2000或windows2003; 內(nèi)存:256M以上; 基于eclipse的JAVA運(yùn)行環(huán)境。設(shè)計(jì)方案:首先,我們知道此應(yīng)用軟件需實(shí)現(xiàn)網(wǎng)絡(luò)中多臺(tái)主機(jī)的信息互通,實(shí)現(xiàn)語言文字得互聊

2、,因此涉及到主機(jī)網(wǎng)絡(luò)互聯(lián)的問題,所以必須會(huì)應(yīng)用到網(wǎng)絡(luò)協(xié)議,可以用UDP或TCP。 其次,既然要求設(shè)計(jì)基于Socket的網(wǎng)絡(luò)聊天系統(tǒng),那就必須對(duì)Socket有一個(gè)充分的了解。 最后,不管運(yùn)用何種語言設(shè)計(jì)此程序,都要求對(duì)該語言有一個(gè)透徹的了解,并能運(yùn)用自如。實(shí)現(xiàn)流程: 啟動(dòng)電腦,打開能運(yùn)行該程序的環(huán)境,必須保證代碼的正確性; 進(jìn)行窗體框架的設(shè)計(jì),實(shí)現(xiàn)網(wǎng)絡(luò)連接,并達(dá)到網(wǎng)絡(luò)聊天的功能;在以上步驟的成功進(jìn)行下達(dá)到設(shè)計(jì)要求的基于Sockets的局域網(wǎng)內(nèi)聊天系統(tǒng)的函數(shù)實(shí)現(xiàn)的目的。結(jié)果及分析:程序運(yùn)行以后,經(jīng)過局域網(wǎng)內(nèi)測試,實(shí)現(xiàn)了在局域網(wǎng)內(nèi)的好友添加,聊天等功能,基本上完成了本實(shí)驗(yàn)的全部要求。但由于時(shí)間倉促,

3、再加上本人水平有限,對(duì)這方面的知識(shí)還有所欠缺,經(jīng)過這次課程設(shè)計(jì),對(duì)此有了一個(gè)很大的提高。源程序;一 Client端程序代碼package wangluo;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.DataInputStream;import java.io.DataOutputStream;import javax.swing.JFrame;import javax.swing.JTextField;publ

4、ic class Client implements ActionListener private JTextField jtf = new JTextField("", 20);JFrame jf = new JFrame("不用注冊(cè)直接登陸");public Client() jf.setLayout(new BorderLayout();jf.add(jtf, BorderLayout.NORTH);jtf.addActionListener(this);jf.pack();jf.setLocation(500, 300);jf.setResiza

5、ble(false);jf.setVisible(true);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Overridepublic void actionPerformed(ActionEvent e) jf.dispose();new ThreadClient(jtf.getText();public static void main(String args) new Client();二 ThreadClient端程序代碼:package wangluo;import java.awt.BorderLayout;import ja

6、va.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.DataInputStream;import java.io.DataOutputStream;import .Socket;import javax.swing.JButton;import javax.swing.JFrame;import jav

7、ax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JTextField;public class ThreadClient extends Thread implements ActionListener private String name = ""private int a;private JTextField jtf = new JTextField("", 25);private JTextArea jta = new JTextArea(30, 40);privat

8、e DataOutputStream dos;private DataInputStream dis;private Socket s;public ThreadClient(String temp) =temp;JFrame jf = new JFrame("聊天界面");jf.setLayout(new BorderLayout();JButton jb = new JButton("發(fā)送");JPanel jp = new JPanel();jta.setLayout(new GridLayout(1, 2);jp.add(jtf

9、);jp.add(jb);jf.add(jp, BorderLayout.NORTH);jf.add(jta);jb.addActionListener(this);jtf.addActionListener(this);jf.pack();jf.setLocation(450, 200);jf.setVisible(true);jf.setSize(400, 350);try s = new Socket("", 1024);dos = new DataOutputStream(s.getOutputStream();dis=new DataInputS

10、tream(s.getInputStream();dos.writeUTF("<1.1>");dos.writeUTF(name);System.out.println("heh"); catch (Exception e) e.printStackTrace();jf.addWindowListener(new WindowAdapter() Overridepublic void windowClosing(WindowEvent e) try dos.writeUTF("<1.4>");Thread.sl

11、eep(2000);dis.close();dos.close();s.close(); catch (Exception e1) e1.printStackTrace();System.exit(1);); this.start();Overridepublic void run() while(true)try Thread.sleep(3000);dos.writeUTF("<1.3>");jta.setText(dis.readUTF(); catch (Exception e) break;Overridepublic void actionPerfo

12、rmed(ActionEvent ae) String comn=jtf.getText(); if(!"".equals(comn) try dos.writeUTF("<1.2>");dos.writeUTF(comn);jtf.setText("");jtf.requestFocus(); catch (Exception e) e.printStackTrace(); 三ThreadServer端程序代碼:package wangluo;import java.io.DataInputStream;import j

13、ava.io.DataOutputStream;import java.io.IOException;import .ServerSocket;import .Socket;public class ThreadServer extends Thread /private StringBuffer message = new StringBuffer();private static String message=""private Socket s;private String name=""public ThreadServer(Socket s)

14、this.s = s;public void run() try DataOutputStreamdos=new DataOutputStream(s.getOutputStream();DataInputStream dis=new DataInputStream(s.getInputStream();while (true) String temp=dis.readUTF();if("<1.1>".equals(temp)name=dis.readUTF();message="歡迎"+name+"進(jìn)入!"+"

15、n"+message;else if("<1.2>".equals(temp)message=name+"說:"+dis.readUTF()+"n"+message;else if("<1.3>".equals(temp)dos.writeUTF(message);else if("<1.4>".equals(temp)message=name+"離開"+"n"+message; break;dos.close();dis.close(); catch (Exception e) e.printStackTrace();public static void main(String args) throws Exception ServerSocket ss = new ServerSocket(1024);while (true) Socket s = ss.accept();new ThreadServer(s).start(); 安裝演示說明詳細(xì)步驟:首先將自己所在電腦作為服務(wù)器端,在JAVA環(huán)境下運(yùn)行該程序,出現(xiàn)以下頁面:再在光標(biāo)所示位置輸入用戶名稱,或直接按回車鍵進(jìn)入

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論