77范文网 - 专业文章范例文档资料分享平台

《计算机网络》实验指导书(2011) - 图文(4)

来源:网络收集 时间:2020-04-20 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

图7 输入域名 图9 DNS新建主机 11 设定用于分配的地址范围

图8 创建区域文件

图10 DHCP

图12 设置不参与分配的地址范围

16

图13 添加路由器信息 图14添加DNS服务器信息 5) DHCP服务的使用

配置客户计算机“TCP/IP协议”属性,在“IP地址”选项卡中选择“自动获取IP地址”,在“WINS”选项卡中,选择“使用DHCP进行WINS解析”。此时,客户端即可使用DHCP服务自动获取IP地址。在客户机的 “命令提示符”下,输入ipconfig/all命令即可查看通过DHCP服务器获取的IP地址、默认路由器、DNS服务器等信息。 四、实验报告内容:

1、 总结实验过程中遇到的问题及解决方法;

2、 列出所建Web服务器的名称、IP地址及其主目录的目录结构。 3、 列出所建DNS区域名称,以及在该区域内增加的记录。

4、 列出客户机通过DHCP获取的IP地址、默认网关、DNS服务器等信息。

17

实验三 Web服务器的实现

一、 实验目的及任务

1、实验目的

熟悉简单网络的搭建与基本配置; 熟悉socket、多线程编程; 熟悉JDK编程工具的基本使用; 熟悉HTTP协议;

熟悉Web服务器的基本工作原理和配置。 2、实验任务

(1)以JDK为开发工具,利用Socket通信机制实现一个多线程的WEB服

务器,该服务器具有以下功能: ? 能够并行服务于多个请求。

? 对于每个请求,显示接收到的HTTP请求报文的内容,并产生适当

的响应(若找到用户请求对象,则返回该对象。否则发送一个包含适当提示信息的响应消息,从而可以在浏览器窗口中显示差错信息。)

(2)搭建一个简单的网络环境,调试 web服务器程序。

二、 实验性质

综合性实验。

三、 实验环境

操作系统:Windows2000 server 开发工具:JDK或其他开发工具

实验设备:交换机(一台)、计算机(两台)、网线若干

四、 实验相关知识点(本课程综合或多课程综合)

1、 网络基本原理(如:HTTP协议、Web服务器、Socket、TCP、UDP等) 2、 网络服务器基本配置(简单C/S网络的组建、web服务器的基本配置等) 3、 程序设计(socket编程、多线程程序设计等)

18

五、 实验实施步骤

1、开发程序

2、搭建简单的C/S网络 3、配置并测试web服务器程序

六、 实验报告内容

1、写出实现“一、实验要求”中所述功能的Web服务器程序的结构框图。 2、写出实现“一、实验要求”中所述功能的Web服务器程序的代码。 3、总结程序设计、调试中出现的问题及其解决办法。 4、实验心得。

附件一:Java的多线程编程 一、理解多线程

多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。

线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单。

多个线程的执行是并发的,也就是在逻辑上“同时”,而不管是否是物理上的“同时”。如果系统只有一个单核CPU,那么真正的“同时”是不可能的。但是由于CPU的处理速度非常快,用户感觉好像自己的程序连续运行一样。因此我们也不用关心它,只需要设想各个线程是同时执行即可。

多线程和传统的单线程在程序设计上最大的区别在于,由于各个线程的控制流彼此独立,使得各个线程之间的代码是乱序执行的,由此带来的线程调度,同步等问题,将在以后探讨。 二、在Java中实现多线程

为了创建一个新的线程,我们需要做些什么?很显然,我们必须指明这个线程所要执行的代码,而这就是在Java中实现多线程我们所需要做的一切。作为一个完全面向对象的语言,Java提供了类 java.lang.Thread 来方便多线程编程,这个类提供了大量的方法来方便我们控制自己的各个线程。

Thread 类最重要的方法是 run() ,它为Thread 类的方法 start() 所调用,提供我们的线程所要执行的代码。为了指定我们自己的代码,只需要覆盖它。 1、方法一:继承 Thread 类,覆盖方法 run()

我们在创建的 Thread 类的子类中重写 run() ,加入线程所要执行的代码即

19

可。

下面是一个例子:

public class MyThread extends Thread {

int count= 1, number; public MyThread(int num) {

number = num;

System.out.println(\创建线程 \}

public void run() {

while(true) {

System.out.println(\线程 \计数 \if(++count== 6) return; }

}

public static void main(String args[]) {

for(int i = 0; i < 5; i++) new MyThread(i+1).start(); } }

这种方法简单明了,符合大家的习惯,但是,它也有一个很大的缺点,那就是如果类已经从一个类继承(如小程序必须继承自 Applet 类),则无法再继承 Thread 类(Java不允许多重继承,即一个类的父类只能有一个),这时如果又不想建立一个新的类,应该怎么办呢?

不妨来探索一种新的方法:不创建 Thread 类的子类,而是直接使用它,那么我们只能将我们的方法作为参数传递给 Thread 类的实例。这有点类似回调函数。但是 Java 没有指针,我们只能传递一个包含这个方法的类的实例。那么如何限制这个类必须包含这一方法呢?使用接口。Java 提供了接口 java.lang.Runnable 来支持这种方法。 2、方法二:实现 Runnable 接口

Runnable 接口只有一个方法 run(),我们声明自己的类实现 Runnable 接口并提供这一方法,将我们的线程代码写入其中,就完成了这一部分的任务。

但是 Runnable 接口并没有任何对线程的支持,我们还必须创建 Thread 类的实例,这一点通过 Thread 类的构造函数public Thread(Runnable target);来实现。

下面是一个例子:

public class MyThread implements Runnable {

20

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库《计算机网络》实验指导书(2011) - 图文(4)在线全文阅读。

《计算机网络》实验指导书(2011) - 图文(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/999976.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: