


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Java 技術實驗:4 號實驗樓第四機房實驗2014 年 12 月 10 日學院計算機與信息學院專業班級計算機科學與技術 13-3 班學號2013211685實驗名稱基于 GUI 的網絡通信程序設計指導教師教師評語教師簽名:年月日一、實驗目的掌握 Java 中 GUI 程序的編寫,包括事件機制。掌握 Java 的網絡通信編程,ServerSocket,Socket 類的使用。 3掌握 Java 中多線程的編程,Thread 類,Runnable 接口的使用。 4掌握用面象的方法分析和解決復雜問題。二、實驗原理使用 java 提供的 javax.swing、java.awt 包實現 GUI 的設
2、計,使用 java.io、 包實現網絡通信,使用 Thread 類創建線程。三、使用硬件、環境PC 計算機一臺,配置為 CPU 為 2.00 GHz,內存為 4.00GB,硬盤為 500G,安裝 Windows 7 操作系統。另外,使用 JCreator,JDK8u20 等、實驗過程、步驟及原始(算法、原程序、,分析等)算法(1).構建窗體類,合理安排布局做出界面效果(2).對窗體中的組件設置器,分別實現對應功能(3).定義SeverSocket,Socket 相關對象,實現通信機制(4).創建多個線程,保證多個組件的同時操作源程序/服務器import java.awt.*; import j
3、ava.awt.event.*; import java.util.*; import java.io.*;import .*; import javax.swing.*;public class SocketServer四三public sic void main(String args) SFrame sf = new SFrame(服務器);class SFrame extends FrameServerSocket server=null; Socket cnt = null;TextField port = newTextField(4000);/將端口默認設為 4000Button
4、 start = new Button(Start); TextArea sfTA = new TextArea(25, 60); TextField sfTF = new TextField(40); Button say = new Button(Say); SFListener sfListener = new SFListener();/初始化 SFrame(String title)super(title); init();/初始化start.addActionListener(sfListener); say.addActionListener(sfListener);/按鍵add
5、WindowListener(/窗口器new WindowAdapter() public void windowClosing(WindowEvent e)/關閉窗體try server.close();catch(Exception ee)ee.prStackTrace();System.exit(0););this.setVisible(true);/初始化函數 void init()setLocation(10,10);/窗置setSize(300,400);/窗體大小 setResizable(false);/設置窗體不可由用戶調整大小 setBackground(Color.LIG
6、HT_GRAY);/設置窗體背景色 sfTA.setBackground(Color.white);/BorderLayout.NORTH 設置Panel North = nenel();Nordd(new Label(服務器設置:);Nordd(new Label(Port:); Nordd(this.port);Nordd(this.start); this.add(North,BorderLayout.NORTH);/BorderLayoENTER 設置Panel Center = nenel(); Center.add(this.sfTA); this.add(Center,Borde
7、rLayoENTER);/BorderLayout.SOUTH 設置Panel South = nenel(); Soudd(new Label(Say:); Soudd(this.sfTF);Soudd(this.say); this.add(South,BorderLayout.SOUTH);/自動調整窗口大小pack();/器類class SFListener implementionListener public void actionPerformed(ActionEvent e) String s =mand(); if (Start = s) /start 操作try start
8、.setEnabled(false);i =egarse(port.getText(); sfTA.append(Server starting.n); server = new ServerSocket(i);cnt = server.accept(); sfTA.append(Cnt connected .n);ServerThread sfST = new ServerThread();/ sfST.start();catch(Exception ce) ce.prStackTrace();else if(Say = s) /say 操作try PrWriter ss = newPrWr
9、iter(cnt.getOutputStream();String str = sfTF.getText(); if(str != ) sfTA.append(Server say: + str + n); ss.write(Server say:+ str + n); ss.flush();sfTF.setText();catch(Exception se) se.prStackTrace();/線程類class ServerThread extends Thread public void run() try BufferedReader br = new BufferedReader(n
10、ew InputStreamReader(cnt.getInputStream() );String s = br.readLine();while(!cnt say:bye.equals(s) & s != null) sfTA.append(s+n);s = br.readLine();catch(Exception re) re.prStackTrace();/客戶端import java.awt.*; import java.awt.event.*;import java.util.*;import java.io.*; import .*; import javax.swing.*;
11、public class SocketCnt public sic void main(String args) CFrame cf = new CFrame(客戶端);/窗體類class CFrame extends Frame Socket cnt = null;TextField port = newTextField(4000); TextField ip = new TextField(127.0.0.1); Button connect = new Button(Connect); TextArea cfTA = new TextArea(25,60); TextField cfT
12、F = new TextField(40); Button say = new Button(Say); CFListener cfListener = new CFListener();CFrame(String title)super(title); init();connect.addActionListener(cfListener); say.addActionListener(cfListener);addWindowListener(/窗口器new WindowAdapter() public void windowClosing(WindowEvent e) /關閉窗體 try
13、 cnt.close();catch(Exception ee) ee.prStackTrace();System.exit(0););setVisible(true);/設置窗體參數void init()setLocation(500,10); setSize(300,400); setResizable(false);setBackground(Color.LIGHT_GRAY); cfTA.setBackground(Color.white);/BorderLayout.NORTH 設置Panel North = nenel();Nordd(new Label(客戶機設置:); Nord
14、d(this.connect);Nordd(new Label(Server IP:); Nordd(this.ip);Nordd(new Label(Servort); Nordd(this.port);this.add(North,BorderLayout.NORTH);/BorderLayoENTER 設置 Panel Center = nenel(); Center.add(this.cfTA);this.add(Center,BorderLayoENTER);/BorderLayout.SOUTH 設置 Panel South = nenel(); Soudd(new Label(S
15、ay); Soudd(this.cfTF);Soudd(this.say); this.add(South,BorderLayout.SOUTH);/自動調整窗口大小pack();/ 器類class CFListener implement ionListener public void actionPerformed(ActionEvent e) String s =mand(); if(Connect = s) try connect.setEnabled(false);i = eg arse (port.getText(); cfTA.append(Connect to server.n
16、); c nt = new Socket(ip.getText(),i);C ntThread cfCT = new C ntThread();/ cfCT.start();catch(Exception ce) ce.prStackTrace();else if(Say = s) try String str = cfTF.getText();PrWriter cc = new PrWriter(cnt.getOutputStream(); if(str != )cc.write(cnt say: + str + n); cc.flush();cfTA.append(cnt say: + str + n);cfTF.setText();catch(Exception se) se.prStackTrace();class CntThread extends Thread public void run() tryBufferedReader br = new BufferedReader( new InputStreamReader(cnt.getInputStream() );String s = br.readLine();while(!Server say:bye.equals(s) & s != null) cfTA.append(s + n);s = br
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 種子種苗國際貿易與市場分析考核試卷
- 紡織設備操作安全風險評估與控制考核試卷
- 窗簾行業的綠色服務模式創新實踐與案例分析考核試卷
- 維綸纖維在高端服裝面料中的應用考核試卷
- 紡織行業供應鏈管理策略考試考核試卷
- 木材采伐與可持續經營考核試卷
- 濾波器設計與實現考核試卷
- 電氣安裝施工環境保障措施考核試卷
- 礦山環境保護與污染防治考核試卷
- 山西省長治市三校2025年高三元月三診一模摸底診斷測試英語試題文試題含解析
- 如何在企業文化中樹立自信心
- 羽毛球正手發高遠球說課稿
- 北斗手持機操作教案
- 區域地理,高二地理
- 圖書館消防安全培訓課件
- 2024年江蘇國信集團有限公司招聘筆試參考題庫含答案解析
- 中小型會計師事務所發展策略
- 非國有資金投資工程項目直接發包備案表
- 《拼多多運營方案》課件
- 常見腫瘤AJCC分期手冊第八版(中文版)
- 委托第三方代收款協議書x
評論
0/150
提交評論