版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java程序设计实验报告-实验3实验室: 2014 年 12 月 10 日学院计算机与信息学院专业班级成绩课程名称Java程序设计实验项目名 称 实验三 基于GUI的网络通信程序设计指导教师教师评语 教师签名: 年 月 日1、 实验目的1掌握Java中GUI程序的编写,包括事件监听机制。2掌握Java的网络通信编程,ServerSocket,Socket类的使用。3掌握Java中多线程的编程,Thread类,Runnable接口的使用。4掌握用面向对象的方法分析和解决复杂问题。2、 实验原理1. 利用java.awt和javax.swing包提供的各种组件实现服务器和客户端的界面设计。2使用套
2、接字实现基于TCP协议的服务器和客户端。3.为服务器和客户端界面中的有关组件添加消息相应,实现交互。三、使用硬件、软件环境 PC 计算机一台,配置为CPU为2.6G,存为4G,硬盘为1T,安装Windows8操作系统。另外,使用JCreator,JDK1.8.0等软件四、实验过程、步骤与原始记录(算法、原程序、测试结果,分析等) 1.实验过程: 首先实现界面的编写,之后使用套接字实现基于TCP协议的通信,再设置监视 器,为相应的组件添加消息相应。 2.源程序:1.客户端程序:KeHuDuan.javaimport java.awt.*;import java.awt.event.*;impor
3、t java.util.*;import java.io.*;import .*;import javax.swing.*;public class KeHuDuanpublic static void main(String args)MyFrame client = new MyFrame();client.setVisible(true);client.setResizable(false);client.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);class MyFrame extends JFrameJTextField ip;
4、JTextField port;JTextField cin;JTextArea content;utton connect;utton say;Socket socket;MyFrame()init();ConnectListen cListener = new ConnectListen();SayListen sListener = new SayListen();connect.addActionListener(cListener);say.addActionListener(sListener);void init() setLayout(new FlowLayout(); set
5、Size(400,400); setLocation(800,100); add(new JLabel("Serve ip"); ip = new JTextField("127.0.0.1",8); add(ip); add(new JLabel("Serve port"); port = new JTextField("8888",8); add(port); connect = new utton("connect"); add(connect); content = new JTextA
6、rea(16,35); JScrollPane scroll = new JScrollPane(content); add(scroll); add(new Label("Say:"); cin = new JTextField(25); add(cin); say = new utton("say"); add(say);class ConnectListen implements ActionListenerint portNum;public void actionPerformed(ActionEvent e)connect.setEnable
7、d(false);try portNum =Integer.parseInt(port.getText();socket = new Socket(ip.getText(),portNum);ClientThread ct = new ClientThread();ct.start(); catch (Exception ex) class SayListen implements ActionListenerString str;public void actionPerformed(ActionEvent e)try PrintWriter out = new PrintWriter(ne
8、w BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),true);str=cin.getText();if(!str.isEmpty()out.println(str);content.append("me:"+str+"n");out.flush();cin.setText(""); catch (Exception ex) class ClientThread extends Threadpublic void run()try BufferedReade
9、r in = new BufferedReader(new InputStreamReader(socket.getInputStream();String str;while(true)str = in.readLine();/System.out.println ("a");content.append(str+"n"); catch (Exception ex) 2.服务器端程序:import java.awt.*;import java.awt.event.*;import java.util.*;import java.io.*;import
10、.*;import javax.swing.*;public class FuWuQipublic static void main(String args)MyFrame serve = new MyFrame();serve.setVisible(true);serve.setResizable(false);serve.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);class MyFrame extends JFrameJTextField port;utton start;JTextArea content;JTextField c
11、in;utton say;Socket socket;MyFrame()init();StartListen sListen = new StartListen();SayListen stListen = new SayListen();start.addActionListener(sListen);say.addActionListener(stListen);void init() setLayout(new FlowLayout();setSize(400,400);setLocation(400,100);add(new JLabel("Port:");port
12、 = new JTextField("8888",25);add(port);start = new utton("Start");add(start);content = new JTextArea(15,35);JScrollPane scroll = new JScrollPane(content);add(scroll);add(new JLabel("Say:");cin = new JTextField(26);add(cin);say = new utton("Say");add(say);class
13、 StartListen implements ActionListenerpublic void actionPerformed(ActionEvent e)start.setEnabled(false);try ServerSocket s = new ServerSocket(Integer.parseInt(port.getText();socket = s.accept();PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),true)
14、;out.println("连接成功");content.append("连接成功"+"n");ServerThread st = new ServerThread();st.start(); catch (Exception ex) class SayListen implements ActionListenerString str;public void actionPerformed(ActionEvent e)try PrintWriter out = new PrintWriter(new BufferedWriter(n
15、ew OutputStreamWriter(socket.getOutputStream(),true);str=cin.getText();if(!str.isEmpty()out.println(str);content.append("me:"+str+"n");out.flush();cin.setText(""); catch (Exception ex) class ServerThread extends Threadpublic void run()try BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream();String str;while(true)str =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年AutoCAD教案全新升级:工程师的精英教程
- 2024年FSC验厂审核员培训课程详解
- 2024年《高等数学2》教案编写:从课程目标到教学策略
- 2024年旅游开发:《废墟的召唤》课件的景点推广
- 2024年KUKA机器人编程与仿真培训新纪元
- 2024会计专业自我鉴定34篇
- 从传统到未来:《黄河落日》课件设计转型
- 旅游教育创新:2024年客源国教案设计
- 教案新思维:2024年海洋化学资源的环境影响
- 2022年护士招聘考试试卷
- 《经济学基础》试题库(附答案)
- 学前教育论文范文8000字(通用九篇)
- 小学数学北师大五年级上册数学好玩 图形中的规律-
- 《富饶的西沙群岛》说课稿(优秀3篇)
- 墓碑碑文范文(通用十四篇)
- 大象版一年级科学上册全册教案
- 教案评分标准
- 中药饮片处方点评表
- 《节能监察的概念及其作用》
- 综合布线系统竣工验收表
- 蔬菜会员卡策划营销推广方案多篇
评论
0/150
提交评论