




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保险销售流程培训
- 小学禁毒安全教育主题班会记录
- 职业病诊断讲解
- 集团安全培训课件
- 城市污水管网建设工程申请报告
- 2025年扎口机项目建议书
- 五年级上册珍珠鸟教学设计
- 五年级家乡的美景500字作文
- 《GBT3367.2-2018内燃机车词汇第2部分:柴油机》深度解析
- 城市黑臭水体治理实施方案中的水环境治理工程招投标研究报告
- JGJ106-2014 建筑基桩检测技术规范
- 2023年中国石化河北石家庄石油分公司社会招聘20人笔试模拟试题及答案解析
- 太阳能热水系统设计
- 医务科岗前培训
- 共青团团课主题班会课件PPT模板PPT
- GB/T 8685-2008纺织品维护标签规范符号法
- 合成氨行业发展现状及趋势分析
- 2022年徐闻县(中小学、幼儿园)教师招聘笔试试题及答案解析
- 网电部管理重点(中)
- 新生儿复苏解析课件
- ABI7500荧光定量PCR仪标准操作规程
评论
0/150
提交评论