JAVA实验(4)
课程名称: Java 面向对象程序设计 学 院: 管 理 学 院 专业班级:信息管理与信息系统(6)班 学 号: 3108006406 姓 名: 张
钟
权
任课教师: 聂 小 东
2010年06月01日
管 理 学院 信息管理与信息系统专业 08信管6班 ______组 学号3108006406姓名张钟权 协作者 教师评定_____________
实验题目 远程数据传输 一、 实验目的与要求
(1)实验目的:充分理解Socket和客户端/服务器模式程序的设计原理。 (2)实验要求:按照Java程序设计实践教程完成第4章远程数据传输的程 序编写和调试。
二、 实验方案
A、远程数据传输示例:
1、客户端程序:定义了一个SClient类,使用套接字连接服务器; 2、服务器端程序:定义了一个SServer类,远程数据传输服务器端程 序。
B、客户端之间通信的聊天室: 1、服务器端程序实现: I、Server类:
①Server()方法:监听一端口,等待客户接入;
②CreateServerThread()方法:将接收到的数据转给与之连接的客户。
II、CreateServerThread类:
①CreateServerThread()方法:建立输入、输出流的对象;
②run()方法:判断来自客户端的字符串前缀中是否包含有“新用户”。
2、客户端程序实现:
⑴构造客户端窗体主程序:定义了一个Chat类
①Chat()方法:设置应用程序的窗体的显示位置; ②main()方法:应用程序入口。
⑵构造客户端登陆窗体程序:定义了一个Frame2类,其父类为JFrame
①Frame2()方法:完成窗体界面设置; ②jbInit()方法:初始化登录窗体界面。
⑶实现客户端聊天功能程序:定义了一个Framel类,其父类为JFrame, 实现了接口Runnable
①Framel()方法;
②jbInit()方法:“聊天界面”布局及客户端的初始化; ③setClection1()方法:调用参数设置的方法; ③setClection2()方法:发送聊天文字内容; ④run()方法:处理服务器端返回来的信息。
三、 实验结果和数据处理 1、客户端登录窗体:
import java.io.*; import java.net.*; import javax.swing.*; import java.awt.*; import java.util.*;
import java.awt.event.*;
//登录窗口
public class Frame2 extends JFrame {
JPanel contentPane;
JLabel jLabel1 = new JLabel();
JTextField jTextField1 = new JTextField(); ButtonGroup buttonGroup1 = new ButtonGroup(); JRadioButton jRadioButton1 = new JRadioButton(); JRadioButton jRadioButton2 = new JRadioButton(); JLabel jLabel2 = new JLabel(); JButton jButton1 = new JButton(); JButton jButton2 = new JButton(); String sex=\男\ String name=null; boolean bool=false; Socket socket;
DataInputStream in; DataOutputStream out;
public Frame2() {
try
{ addWindowListener (
new WindowAdapter()
{ public void windowClosing(WindowEvent e) {setVisible(false); } } );
jbInit();
} catch (Exception exception)
{ exception.printStackTrace(); } }
/**
\登录界面\ */
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane(); contentPane.setLayout(null); this.setResizable(false);
setSize(new Dimension(400, 300)); setTitle(\登录界面\
jLabel1.setFont(new java.awt.Font(\ jLabel1.setHorizontalAlignment(SwingConstants.RIGHT); jLabel1.setText(\请输入您的昵称:\
jLabel1.setBounds(new Rectangle(53, 70, 113, 44)); //输入客户昵称
jTextField1.setBounds(new Rectangle(182, 75, 154, 33));
jTextField1.addKeyListener(new Frame2_jTextField1_keyAdapter(this)); //输入客户性别
jRadioButton1.setFont(new java.awt.Font(\ jRadioButton1.setSelected(true); jRadioButton1.setText(\男\
jRadioButton1.setBounds(new Rectangle(186, 114, 91, 25)); jRadioButton1.addActionListener(new
Frame2_jRadioButton1_actionAdapter(this));
jRadioButton2.setFont(new java.awt.Font(\ jRadioButton2.setText(\女\
jRadioButton2.setBounds(new Rectangle(187, 140, 91, 25)); jRadioButton2.addActionListener(new
Frame2_jRadioButton2_actionAdapter(this));
jLabel2.setFont(new java.awt.Font(\ jLabel2.setToolTipText(\ jLabel2.setText(\性别:\
jLabel2.setBounds(new Rectangle(136, 131, 34, 16)); //\确定\与\取消\按钮
jButton1.setBounds(new Rectangle(182, 218, 71, 25)); jButton1.setText(\确定\
jButton1.addActionListener(new Frame2_jButton1_actionAdapter(this)); jButton2.setBounds(new Rectangle(264, 218, 71, 25)); jButton2.setText(\取消\
jButton2.addActionListener(new Frame2_jButton2_actionAdapter(this));
contentPane.add(jLabel1);
contentPane.add(jTextField1); contentPane.add(jRadioButton1); contentPane.add(jRadioButton2); contentPane.add(jLabel2); contentPane.add(jButton2); contentPane.add(jButton1);
buttonGroup1.add(jRadioButton1); buttonGroup1.add(jRadioButton2);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = getSize();
if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; }
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库JAVA实验报告4-远程数据传输在线全文阅读。
相关推荐: