版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java 技术实验实验( 三 ): 四号机房2014 年 12 月 15 日学院计算机与信息学院专业班级计算机科学与技术 13-3学号2013211698实验名称基于 GUI 的网络通信程序设计指导教师教师评语教师签名:年月日一、实验目的掌握 Java 中 GUI 程序的编写,包括事件机制。掌握 Java 的网络通信编程,ServerSocket,Socket 类的使用。 3掌握 Java 中多线程的编程,Thread 类,Runnable 接口的使用。 4掌握用面象的方法分析和解决复杂问题。二、实验原理继承 JFrame 类创建两个类服务器,使之界面画。并且利用事件器对界面的操作做出相应反应
2、。其中通过实现 Runnable 线程类来同步其中的。三、使用硬件、环境PC 计算机一台,配置为 CPU 为 1.5G,内存为 512M,硬盘为 40G,安装 WindowsXP 操作系统。另外,使用 JCreator,JDK1.6.0 等四、实验过程、步骤及原始(算法、原程序、,分析等)源程序:1.接受器: package business;import java.io.EOFException; import java.io.IOException; import java.io.ObjectInputStream;import java.io.ObjectOutputStream; im
3、port .Socket;import tools.Constant; import graphic.MainCnt;public class Cnt private MainCnt frame;private ObjectOutputStream out;private ObjectInputStream in;private Socket socket;public Cnt() frame = new MainCnt(); frame.setVisible(true);cnt_start();public void cnt_start() try / 请求连接frame.show(连接中,
4、请稍候);socket = new Socket(Constant.SERVER_HOST, Constant.LISTEN_PORT);/ 连接建立frame.show(连接到: + socket.getInetAddress().getHostName();frame.show();out = new ObjectOutputStream(socket.getOutputStream(); frame.setOut(out);/ 保持通信in = new ObjectInputStream(socket.getInputStream(); String message = ;while (
5、true) try message = (String) in.readObject();if (message.equals(Constant.CONNECT_QUIT) frame.setOut(null);break;frame.show(服务器端 + message); catch (Exception e) e.prStackTrace();/ 结束连接frame.show(对不起,服务器已经断开!); olose();in.close(); socket.close(); catch (EOFException eofException) System.out.prln(服务器连接
6、终止); catch (IOException ioException) ioException.prStackTrace();public sic void main(String args) new Cnt();2.服务器:package business;import java.io.EOFException; import java.io.IOException; import java.io.ObjectInputStream;import java.io.ObjectOutputStream; import .ServerSocket; import .Socket;import
7、tools.Constant; import graphic.MainServer;public class Server private MainServer frame;private ObjectOutputStream out;private ObjectInputStream in;private ServerSocket serverSocket;private Socket socket;privatecounter = 1;public Server() frame = new MainServer(); frame.setVisible(true); server_start
8、();private void server_start() try serverSocket = new ServerSocket(Constant.LISTEN_PORT, 20); while (true) / 等待连接frame.show(等待连接,请稍候); socket = serverSocket.accept();/ 建立连接frame.show(已与客户端 + socket.getInetAddress().getHostName()+ 建立连接!);frame.show();out = new ObjectOutputStream(socket.getOutputStrea
9、m(); frame.setOut(out);/ out.writeObject(服务器端 连接成功);out.flush();/ 保持通信in = new ObjectInputStream(socket.getInputStream(); String message = ;while (true) try message = (String) in.readObject(); System.out.prln(message);if (message.equals(Constant.CONNECT_QUIT) frame.setOut(null);break;frame.show(客户端
10、+ message); catch (Exception e) e.prStackTrace();/ 结束连接frame.show(客户端 + socket.getInetAddress().getHostName()+ 中断了连接!);olose();in.close(); socket.close();+counter; catch (EOFException eofException) eofException.prStackTrace(); catch (IOException ioException) ioException.prStackTrace();/ main()方法publ
11、ic sic void main(String args) new Server();3.接受器界面 package graphic;import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimen; import java.awt.FlowLayout;import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.
12、event.WindowEvent; import java.io.IOException;import java.io.ObjectOutputStream; import javax.swing.JButton;import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import tools.Constant;public class MainCnt ex
13、tends JFrame private JScrollPane scrollPane1;private JTextArea ta_show;private JPanel panel1;private JTextField tf_message;private JButton btn_send;private finalSHOW_ROWS = 11;private ObjectOutputStream out;public MainCnt() ponents();private voidponents() scrollPane1 = new JScrollPane(); ta_show = n
14、ew JTextArea(); panel1 = new JPanel(); tf_message = new JTextField(); btn_send = new JButton();setTitle(Cnt-客户端程序);/ 设置标题addWindowListener(new WindowAdapter() public void WindowsClosing(WindowEvent e) thisGraphicClosing(e););Container contentPane = getContentPane(); contentPatLayout(new BorderLayout
15、();/ 添加 scrollPane1ta_show.setRows(SHOW_ROWS);ta_show.setEditable(false); scrollPane1.setViewportView(ta_show);contentPane.add(scrollPane1, BorderLayout.SOUTH);/ 添加 panel1panel1.setLayout(new FlowLayout(); tf_message.setPreferredSize(new Dimen(320, 25); panel1.add(tf_message);btn_send.setText(Send);
16、 btn_send.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) btn_sendActionPerformed(e););panel1.add(btn_send);contentPane.add(panel1, BorderLayout.NORTH); pack();setLocationRelativeTo(getOwner(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);private void btn_sendActi
17、onPerformed(ActionEvent e) try out.writeObject(tf_message.getText(); out.flush();tf_message.setText(); catch (IOException ie) ie.prStackTrace();private void thisGraphicClosing(WindowEvent e) if (out != null) try out.writeObject(Constant.CONNECT_QUIT); out.flush(); catch (IOException ie) ie.prStackTr
18、ace();public void setOut(ObjectOutputStream out) this.out = out;public void show(String mess) ta_show.append(mess + n);ta_show.setCaretition(ta_show.getText().length();4.服务器界面package graphic;import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimen;import java.awt.FlowLayout;imp
19、ort java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent; import java.io.IOException;import java.io.ObjectOutputStream; import javax.swing.JButton;import javax.swing.JFrame; import javax.swing.JPanel; import javax.swi
20、ng.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import tools.Constant;public class MainServer extends JFrame private JScrollPane scrollPane1;private JTextArea ta_show;private JPanel panel1;private JTextField tf_message;private JButton btn_send;private finalSHOW_ROWS = 11
21、;private ObjectOutputStream out;public MainServer() ponents();private voidponents() scrollPane1 = new JScrollPane(); ta_show = new JTextArea(); panel1 = new JPanel(); tf_message = new JTextField(); btn_send = new JButton(); setTitle(Server-服务器端程序);addWindowListener(new WindowAdapter() public void Wi
22、ndowsClosing(WindowEvent e) thisGraphicClosing(e););Container contentPane = getContentPane(); contentPatLayout(new BorderLayout();ta_show.setRows(SHOW_ROWS); ta_show.setEditable(false); scrollPane1.setViewportView(ta_show);contentPane.add(scrollPane1, BorderLayout.SOUTH);panel1.setLayout(new FlowLay
23、out();/ - tf_message -tf_message.setPreferredSize(new Dimen(320, 25); panel1.add(tf_message);/ - btn_send -btn_send.setText(Send); btn_send.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) btn_sendActionPerformed(e););panel1.add(btn_send);contentPane.add(panel1, BorderLayout.NORTH); pack();setLocationRelativeTo(getOwner(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);private void btn_sendActionPerformed(ActionEvent e) try out.writeObject(tf_message.getText(); out.flush();tf_message.setText(); catch (IOException ie) ie.prStackTrace();private v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度物业公司提供物业管理软件合同
- 2024年度技术转让合同:研究机构将其科研成果转让给高新技术企业的合同
- 2024年度房屋租赁合同的房屋位置和使用条件规定
- 2024年度厂房租赁合同详述
- 2024年度爱奇艺体育节目制作委托合同
- 2024年度品牌授权经营合同(服装品牌)
- 热敏纸市场发展现状调查及供需格局分析预测报告
- 硫磺棒消毒用项目评价分析报告
- 轻型飞机市场发展现状调查及供需格局分析预测报告
- 空气干燥器市场发展现状调查及供需格局分析预测报告
- 半年分析----住院超过30天患者原因分析及改进措施
- 个人所得税完税证明英文翻译模板
- 无公害农产品查询
- 国家公派出国留学经验交流PPT课件
- 研究生课程应用电化学(课堂PPT)
- 六宫数独可直接打印共192题
- 班会:如何克服浮躁心理PPT优秀课件
- Monsters歌词下载,Monsters原唱歌词中文翻译,Monsters简谱KatieSky
- (完整版)A4作文格纸可直接打印使用
- 甘肃省普通高级中学综合督导评估方案(试行)[最新]
- 港口工程项目报批流程
评论
0/150
提交评论