![级城市学院网络编程试验指导书_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-6/22/08e5eef2-aed0-419c-94ee-59582ec0879f/08e5eef2-aed0-419c-94ee-59582ec0879f1.gif)
![级城市学院网络编程试验指导书_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-6/22/08e5eef2-aed0-419c-94ee-59582ec0879f/08e5eef2-aed0-419c-94ee-59582ec0879f2.gif)
![级城市学院网络编程试验指导书_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-6/22/08e5eef2-aed0-419c-94ee-59582ec0879f/08e5eef2-aed0-419c-94ee-59582ec0879f3.gif)
![级城市学院网络编程试验指导书_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-6/22/08e5eef2-aed0-419c-94ee-59582ec0879f/08e5eef2-aed0-419c-94ee-59582ec0879f4.gif)
![级城市学院网络编程试验指导书_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-6/22/08e5eef2-aed0-419c-94ee-59582ec0879f/08e5eef2-aed0-419c-94ee-59582ec0879f5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2009级城市学院网络编程技术实验指导书实验一、application与applet程序调试运行实验目的:熟悉所用系统的上机方法与步骤。实验环境:安装windows 2000或windows xp计算机和jdk编译器。实验内容:编写一个java application和一个applet程序,输出以下信息: hello,java world!java程序分为java application(java 应用程序)和java applet(java小应用程序)两种。1、java applicationapplication是在本地独立运行的完整的java程序。application与网络的联系不如a
2、pplet那样密切,它一般存储在本地机,运行时也不需要浏览器,而是由独立的java解释器来解释执行。application的程序特点是它包含一个含有main()方法的主类,这个main()方法就是整个程序的执行入口点。下面是用application写的程序,它完成的功能是在屏幕上输出一个字符串“hello,java world!”。由于application无法借助浏览器的窗口系统,所以字符串“hello,java world!”是直接显示在字符界面中的。application编译生成的字节码文件存储在本地,不需要网络下载,由本地的独立解释器解释执行,因此它的安全性限制没有applet那么严格
3、,与本地普通的应用程序相当。但同时,由于不能像applet那样充分利用浏览器系统提供的窗口系统,application必须创建和管理自己的图形界面,乃至整个程序。由于application的可靠性好,编程自由度大和功能较强,它较多用于网络的服务器端的应用编程。2、 java applet java applet是嵌入在html文件中运行的java小程序,它的程序结构特点是程序中必然包含一个继承了系统applet类的子类,这个子类用来在解释执行applet的浏览器中建立一个java的工作区,显示有关信息,接受用户命令。java applet程序也是一个类,其编译方式与java applicati
4、on完全一样。java applet的执行方式与java application完全不同,java applet程序必须嵌入到html文件中才能够执行,因此必须编写相应的html文件。 下面是一个最简单的java applet程序:这个程序的功能是在浏览器的java applet工作区中显示字符串“hello, java world!”。这个程序由一个类组成,类名为helloworld ,它是系统类applet的子类。类helloworld包含了一个方法paint(),这个方法负责在工作区的指定位置显示字符串,由解释执行applet的浏览器自动调用执行。 applet没有main( )方法,它
5、必须嵌在超文本文件中,在浏览器中进行运行。所有的applet程序都是applet类的子类,applet程序是从方法init( )开始执行的。 applet不能独立运行,必须依赖一个特殊的环境框架浏览器。这一特殊的运行机制对安全性也提出了较高的要求,所以需applet可以执行的操作权限做相应的限制。该程序编译后生成helloworld.class文件,为了运行这个程序,需要编写一个html文件来调用它,html文件和其放在同一目录,下面为helloworld.html文件的内容: 然后可以通过jdk所提供的命令“appletviewer”,在命令行下面执行java applet程序。如果是在wi
6、ndows操作系统中,就可以在命令提示符下敲入appletviewer helloeducation.html“。applet还可以采用另外一种方式运行,就是直接在浏览器中打开helloeducation.html程序,在主流的浏览器如ie、netscape中都包含有java虚拟机,负责解释执行java applet程序。 实验二 java语法基础实验目的:熟悉面向对象程序设计语言java语言的语法基础。实验环境:安装windows 2000或windows xp计算机和jdk编译器。实验内容: 一、java语言基础1编译和运行下面程序,写出执行结果2分析程序,掌握for控制语句,写出执行结果
7、。 3用三种循环语句来分别实现输出1050之间的3的倍数。4打印以下图案(每行打5个星号,每个星号之间空两个空格)。 * * * * * * * * * * * * * * * * * * * * * * * * *5用swith语句实现从键盘读如1,2,3时,屏幕提示不同信息。 二、类的定义及使用修饰符 class 类名 extends 父类名 implements 接口列表 / 类体 说明: 1)类修饰符分类: 访问修饰符:缺省(默认方式)、public 非访问修饰符:abstract、final ,不能同时修饰一个类 2) extends : 实现继承 3) implements : 实
8、现接口1下面给出了一个矩形类rectangle,其中含有多个构造方法。上机编译并运行此程序,观察运行结果,体会其中不同构造方法的设计和使用。 2编译并运行下面的程序,观察分析运行结果,体会程序中super和this的用法,进一步理解变量隐藏和方法重写的概念。3. 编译并运行下面的程序,分析运行结果,体会其中方法重载的用法,进一步理解方法重载的概念。 三、 java的接口1、接口的基本概念java中的接口在语法上有些类似于类,它定义了若干的抽象方法和常量,形成一个属性集合,该属性集合通常代表了某一功能的实现。它的主要作用是可以帮助我们实现类似于类的多重继承的功能。java中各类获取某一接口定义的
9、功能,并不是通过直接继承这个接口中的域和方法来实现的,因为接口中的域都是常量,接口中的方法都是没有方法体的抽象方法,也就是说,接口定义的仅仅是实现某一特定功能的功能接口和规范,而并没有真正的实现这个功能,这个功能的真正实现实在“继承”了这个接口的各个类中完成的,有这些类来具体定义接口中各抽象方法的方法体。故在java中,通常把对接口功能的“继承”称为实现。2、接口的声明java中声明接口的语法如下:public interface 接口名 extends 父接口名列表 /接口体:/ 常量域声明public static final 域类型 域名=常量值;/ 抽象方法声明public abstr
10、act native 返回值 方法名(参数列表)throw 异常列表;3、接口的实现某个类为接口中的抽象方法书写语句并定义实在的方法体,称为该类实现可这个接口。示例如下:四、包的定义和使用l 创建自定义包mypackage 在存放源程序的文件夹中建立一个子文件夹 mypackage。例如,在“e:java程序”文件夹之中创建一个与包同名的子文件夹 mypackage(e:java程序mypackage),并将编译过的 class 文件放入该文件夹中。注意:包名与文件夹名大小写要一致。再添加环境变量 classpath 的路径,例如:e:j2sdk1.4.2_01lib; e:java程序 l
11、在包中创建类ymd.java 程序功能:在源程序中,首先声明使用的包名mypackage,然后创建ymd 类,该类具有计算今年的年份并输出一个带有年月日的字符串的功能。源代码如下 编译test_ymd.java文件,然后将test_ymd.class文件存放到mypackage文件夹中。 l 编写使用包mypackage中test_ymd类的程序 ymd_2.java程序功能:给定某人姓名与出生日期,计算该人年龄,并输出该人姓名,年龄,出生日期。程序使用了test_ymd 的方法来计算年龄。源代码如下 编译并运行程序。实验三、异常处理程序设计实验目的:了解java中异常处理(exception
12、)的作用及常用的异常类,掌握异常处理的设计方法。实验环境:安装windows 2000或windows 98计算机和jdk编译器。实验要求:理解系统异常处理的机制和创建自定义异常的方法。实验内容:在已实现的方法中,加入出错处理异常(exception),又称例外,是特殊的运行错误,对应着java语言特定的运行机制。由于java程序是在网络环境中运行的,安全成为需要首先考虑的首要因素之一。为了能够及时有效的处理程序中的运行错误,java中引入了异常和异常类。作为面向对象的语言,异常与其它语言要素一样,是面向对象规范的一部分,是异常类的对象。异常类结构与组成:java的异常类是处理运行是错误的特殊
13、类,每一种异常类对应一种特定的运行错误。所有的java异常类都是系统类库中的exception类的子类。其类继承结构如下图:exception类error类throwable类throwable类是java.lang包中的一个类,它派生了两个子类:exception和error。其中error类由系统保留,而exception类则供应用程序使用。系统定义的运行异常:exception类有若干子类,每一个子类代表了一种特定的运行错误。这些子类有些是系统事先定义好包含在java类库中的,称为系统定义的运行异常。系统定义的运行异常通常对应着系统运行错误。由于这种错误可能导致操作系统错误,甚至是整个系
14、统的瘫痪,所以需要定义异常来特别处理。用户自定义的异常:系统定义的异常主要用来处理系统可以预见的较常见的运行错误,对于某个应用所特有的错误,则需要用户程序自己创建用户自定义异常。这种用户自定义异常主要用来处理用户程序中特定的逻辑运行错误。用户自定义异常用来处理程序中可能产生的逻辑错误,使得这种错误能够被系统及时识别并处理。因此用户自定义异常可以使用户程序更为强健,使整个系统更加安全稳定。异常的抛出:java程序在运行时如果引发了一个可识别的错误,就会产生一个与该错误相对应的异常类的对象,这个过程被称为异常的抛出。异常的抛出根据异常类的不同,抛出的方法也不同。所有的系统定义的异常都可以由系统自动
15、抛出;用户程序自定义的异常必须借助于throw语句来定义何种情况算是产生了此种异常对应的错误,并应该抛出这个异常的新对象。异常的处理:当一个异常被抛出时,应有专门的语句来接受这个被抛出的异常对象,这个过程被称为捕捉异常。当一个异常类被捕捉或接收后,用户程序就会发生跳转,系统中止当前的流程而跳转至专门的异常处理语句块,或直接跳出当前程序和java虚拟机回到操作系统。在java程序里,异常处理语句的格式如下:try /用try语句来选定捕获异常的范围 catch /异常处理语句 finally /总是会被执行的代码 1、用try-catch-finally结构实现异常处理。 编译并运行程序,写出程
16、序运行结果。2、编译并运行程序,写出程序运行结果。3、输入并运行下面的程序,写出程序运行结果。4、请看下面的定义string s=null;if (s!=null) &(s.length()0);if(s!=null)&(s.length()0);if (s=null)|(s.length()0);if(s=null)|(s.length()0);在上面4个语句中,哪个能引发异常?是哪种类型的异常?请说明理由。实验四 多线程程序设计实验目的:理解线程的概念、线程的生命周期,掌握多线程的编程:继承thread类与使用runnable接口。实验环境:安装windows 2000或windows 9
17、8计算机和jdk编译器实验要求:1、掌握两种创建线程的方法:一种是创建用户自己的线程子类,另一种是在用户自己的类中实现runable接口。2、掌握线程优先极。3、掌握线程的同步方法。实验内容:多线程是指同时存在的几个执行体,按几条不同的执行线索共同工作的情况。java语言的一个重要功能特点就是内置对多线程的支持,踏实的编程人员可以很方便的开发出具有多现成功能,能同时处理多个任务的功能强大的应用程序。java中编程实现多线程应用有两种途径:一种是创建用户自己的线程子类,另一种是在用户自己的类中实现runable接口。无论那种方法,都需要使用到java基础类库中的thread类及其方法。创建thr
18、ead类的子类:在这个途径中,用户程序需要创建自己的thread类的子类,并在子类中重新定义自己的run()方法,这个run()方法中包含了用户线程的操作。这样在用户程序需要建立自己的线程时,他只需要创建一个一定已定义好的thread子类的实例就可以了。实现runnable接口:在这个途径中,已经有了一个父类的用户类可以已通过实现runable()接口的方法来定义用户线程的操作。我们知道,runable接口只有一个方法run(),实现这个接口,就必须要定义run()方法的具体内容。用户新建现成的操作也有这个方法来决定。定义好run()方法后,当用户程序需要建立新线程时,只要以这个实现了runn
19、able()方法的类为参数创建系统类thread的对象,就可以把用户实现的run()方法继承过来。l 1、用创建thread类的子类的方法实现多线程:2、用实现runnable接口的方法实现多线程。 编译并运行程序。3、线程优先级的作用:用继承thread类和执行runnable接口的方法创建两个线程,并测试这两个线程的同时运行情况。 a. 将两个线程设为同优先级,比较运行情况。 b. 将两个线程设为同优先级, 比较线程调用sleep()/yeild()方法后出现什么情况。 c.将两个线程设为不同优先级,比较以上两种情况。4、线程的同步:编写两个线程,一个线程向数组中存数据,一个线程向数组中取
20、数据。练习如何实现线程的同步。实验五:系统i/o程序设计实验目的:理解数据流的概念、java流的层次结构及文件的概念;熟悉图形用户界面基本组件的使用方法,熟悉如何使用布局管理器对组件进行管理及如何使用java的事件处理机制。实验要求:1、掌握字节流和字符流的基本使用方法。2、能够创建、读写、更新文件。3、掌握在applet容器中添加组件的方法,掌握使用布局管理器对组件进行管理的方法。4、理解 java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。5、掌握编写独立运行的窗口界面的方法。6、了解对话框及java swing 组件的使用方法。实验内容:1、创建标准数据流的应用程序标准数据流
21、指在字符方式下(如dos 提示符)程序与系统进行输入输出的方式,键盘和显示器屏幕是标准输入输出设备,数据输入的起点为键盘,数据输出的终点是屏幕,输出的数据可以在屏幕上显示出来。程序功能:将键盘上输入的字符在屏幕上显示出来,源代码如下编译运行该程序,写出运行结果(应至少包括3次输入及相应运行结果)。2、使用文件输入输出流的应用程序1)程序功能:读入一个文件的内容拷贝到另一个文件中去,源代码如下import java.io.*;写出该程序功能及运行结果(需注明输入或用到的原文件内容)。2)从一个文本文件以流的形式输出文件内容import java.io.*; 3、创建图形用户界面图形用户界面(gr
22、aphic user interface ,简称gui)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。组件(component)是构成gui 的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。组件一般作为一个对象放置在容器(container)内,容器是能容纳和排列组件的对象,如applet、panel(面板)、frame(窗口)等。通过容器的add 方法把组件加入到容器中。awt类库中的各种操作被定义成在一个并不存在的“抽象窗口”中进行的。它抽取不同软硬件平台中所实现的窗口的公共特性。使所设计的
23、界面独立于具体的界面实现,并且提供与机器无关的基本gui标准组件。例如:选择类组件: 单选按钮、复选框、下拉选单、列表框文字处理类组件: 标签、文本框、编辑框。命令类组件:按钮、工具栏、菜单等。l 在applet 中添加标签、按钮并使用网格布局程序功能:在applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。源代码如下:import java.awt.*;import java.applet.applet;编译程序,编写显示applet 的html页面文件。l 在面板中添加组件程序功能:在applet 中添加面板容器,并分别在applet、面板容器中添加组件并使用
24、不同的布局管理方式。源代码如下:编译程序,编写显示applet 的html页面文件。awt有关的所有事件类都由java.awt.awtevent类派生 ,awt事件共有10类,可以归为两大类:低级事件和高级事件。低级事件:componentevent(组件事件:组件尺寸的变化,移动)containerevent(容器事件:组件增加,移动)windowevent(窗口事件:关闭窗口,窗口闭合,图标化)focusevent(焦点事件:焦点的获得和丢失)keyevent(键盘事件:键按下、释放)mouseevent(鼠标事件:鼠标单击,移动)高级事件(语义事件)actionevent(动作事件:按钮
25、按下,textfield中按enter键)adjustmentevent(调节事件:在滚动条上移动滑块以调节数值)itemevent(项目事件:选择项目,不选择项目)textevent(文本事件,文本对象改变)event :事件,就是发生在用户界面上的用户交互行为所产生的一种效果。event source:产生事件的对象。event handler:接收事件对象并对其进行处理的方法。在java中对于某种类型的事件xxxevent,要想接收并处理这类事件,必须定义相应的事件监听器类,该类需要实现针对特定事件的特定接口xxxlistener;事件源中产生事件后,必须注册相应于该类事件的监听器,使用
26、addxxxlistener(xxxlistener )方法来注册监听器。下面是一些处理时间的例子:1)侦察键盘事件import java.awt.event ;import java.awt.graphics ;import java.applet.*;2)侦察鼠标事件:import java.awt.*;import java.applet.* ;4、从标准设备中输入若干行英文句子,直到输入bye结束,将这些字符串写入文件。5、编程完成下列功能:建立两个文件myfiel.txt和myfile2.txt,对文件myfile1.txt输入内容:“i am a student.”,并将其内容拷贝
27、给myfile2.txt。6、实现一个计算器,界面类似windows中的界面,包括09十个数字、加、减、乘、除四种运算符号和一个用于输入及显示结果的文本框,单击每个按钮都能完成相应的功能。实验六:url网络程序设计实验目的:掌握url类的使用:url的概念和编程。实验要求:1、掌握网络编程的基本概念。2、掌握url类的简单应用。3、利用url类与urlconnection类获取资源。 实验内容:1、用java实现底层网络通讯下面的语句利用主机名找到网络中相应的计算机的ip地址并打印出来 。程序中用到了inetaddress类,它主要用来区分计算机网络中的不同节点,即不同的计算机并对其寻址。编译
28、并运行该程序,写出程序运行结果。2、获取url信息,源代码如下:编译并运行程序,写出程序运行结果。3、利用url类获取网络资源,源代码如下:import .*; import java.io.*; public class urlreader public static void main(string args) throws exception 编译并运行程序,写出运行结果。4、利用urlconnection对url资源的读取,源代码如下:编译并运行程序,写出运行结果。5、掌握urlconnection对url资源的写入,源代码如下:import java.io.*; 编译并运行程序,写出
29、运行结果。实验七:使用tcp协议的socket网络程序设计实验目的:掌握socket通讯机制,掌握socket和serversocket类和相关方法。实验要求:通过socket编程,掌握网络应用程序的开发方法;掌握利用java提供的基本组件进行网络传输;掌握java提供的多线程机制,异常处理机制和低层对协议的通信机制,通过socket编程,掌握网络应用程序的开发方法。 实验内容:1、创建服务器和客户程序,在运行客户程序的计算机上输入的内容,可以在服务器屏幕上看到。l 服务器端源程序/服务器线程 catch(exception e) system.out.println(e.tostring()
30、; l 客户端源程序 编译并运行程序。2、使用serversocket类和socket类实现按如下协议通信的服务器端和客户端程序。服务器程序的处理规则如下:1) 向客户端程序发送verifying server!。2) 若读口令次数超过3次,则发送illegal user!给客户端,程序退出。否则向下执行步骤3)。3) 读取客户端程序提供的口令。4) 若口令不正确,则发送password wrong!给客户端,并转步骤2),否则向下执行步骤5)。5) 发送registration successful!给客户端程序。客户端程序的处理规则如下:1) 读取服务器反馈信息。2) 若反馈信息不是ver
31、ifying server!,则提示server wrong!,程序退出。否则向下执行步骤3)3) 提示输入password并将输入的口令发送给服务器。4) 读取服务器反馈信息。5) 若反馈信息是illegal user!,则提示illegal user!,程序退出。否则向下执行步骤6)6) 若反馈信息是password wrong!,则提示password wrong!,并转步骤3),否则向下执行步骤。7) 输出registration successful!。实验八:使用udp协议的socket网络程序设计实验目的:掌握socket通讯机制,掌握datagramsocket和datagra
32、mpacket类和相关方法。实验要求:通过socket编程,掌握网络应用程序的开发方法;掌握利用java提供的基本组件进行网络传输;掌握java提供的多线程机制,异常处理机制和低层对协议的通信机制,通过socket编程,掌握网络应用程序的开发方法。实验内容:1、服务器接收客户端发来的空数据包,由接收的数据包获得客户端的ip地址和端口号,然后将服务器端的当前时间以数据包的形式发送给客户端。当超过10个客户端请求后,服务器端自动关闭。客户端首先发送请求数据包,然后等待接收服务器端传回来的带有服务器当前时间的数据包,显示服务器端发送的时间之后关闭。代码如下:服务器端程序:客户端程序:new udpc
33、lient().run();system.out.println(客户器端已获得服务器当前时间,自动关闭!);catch (ioexception e)e.printstacktrace();编译并运行程序。2、使用udp编程,客户机发送数据到服务器,服务器将接收到的数据返回给客户机。实验九:applet应用程序设计实验目的:了解applet运行机制,掌握java applet程序结构和开发过程,了解applet与浏览器的通信。实验要求:1、了解applet运行机制以及applet与浏览器的通信。2、掌握java applet程序结构和开发过程。3、学会编写applet对应的html文件,掌握从html文件向applet传递参数的方法。4、掌握在applet图形界面设计。实验内容:1、显示welcome
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全球及中国机器人用立体摄像头行业头部企业市场占有率及排名调研报告
- 2025年全球及中国油藏模拟软件行业头部企业市场占有率及排名调研报告
- 2025年全球及中国电子保险丝芯片行业头部企业市场占有率及排名调研报告
- 2025-2030全球中低牌号无取向硅钢行业调研及趋势分析报告
- 2025年全球及中国特殊需求三轮车行业头部企业市场占有率及排名调研报告
- 2025年全球及中国超精密非球面磨床行业头部企业市场占有率及排名调研报告
- 2025-2030全球软件工程智能平台行业调研及趋势分析报告
- 2025-2030全球1P储能锂电池行业调研及趋势分析报告
- 2025年全球及中国漫画书出版商行业头部企业市场占有率及排名调研报告
- 2025年全球及中国自动血压脉搏测试仪行业头部企业市场占有率及排名调研报告
- 第一章 整式的乘除 单元测试(含答案) 2024-2025学年北师大版数学七年级下册
- JD37-009-2024 山东省存量更新片区城市设计编制技术导则
- 水利水电工程监理平行检测表部分
- 分部分项工程质量检验计划表
- 社区卫生服务中心医疗服务推荐病-2023版1-4-10
- HY/T 266-2018外压中空纤维超滤膜表面亲水性的测试接触角法
- 【英文原版小说】the things they carried《负荷》
- 领导干部如何管理压力与情绪课件
- 2022-2023年度神农中华农业科技奖科研和科普类推荐书和摘要表(样本)
- 大学成绩单中文(word版)
- 海南省儋州市各县区乡镇行政村村庄村名明细及行政区划代码居民村民委员会
评论
0/150
提交评论