《网络开发与应用》实验指导书 哈尔滨工业大学软件学院 《网络开发与应用》实验指导书 李全龙宋艳艳 2005年10月
《网络开发与应用》实验指导书 哈尔滨工业大学软件学院 《网络开发与应用》实验指导书 李全龙 宋艳艳 2005年10月 1
《网络开发与应用》实验指导书 前言 《网络开发与应用》课程是计算机科学与技术专业的重要专业课程之一。随 着互联网的蓬勃发展,计算机网络在社会经济和人们生活中占据着越来越重要的 地位,成为经济发展和现代生活不可缺少的一部分,掌握计算机网络知识成为社 会对人才的基本要求。作为培养高素质人才的高校,为了满足社会对人才的需求, 给《网络开发与应用》课程的教学提出了新的更高的要求 计算机网络是一门实践性很强的课程,实践环节在教学过程中起着越来越重 要的作用。通过实验不仅可以加深学生对网络原理的理解和掌握,更重要的是培 养学生在网络方面的应用、管理和维护能力,并根据所学知识分析解决网络应用 过程中出现的问题 希望同学们在使用本实验指导书及进行实验的过程中,能够帮助我们不断地 发现问题,并提出建议,使《网络开发与应用》成为具有世界一流水平的课程 本学期授课教师为李全龙老师,参与网络课程助教环节的教师为宋艳艳同学。 2
《网络开发与应用》实验指导书 前 言 《网络开发与应用》课程是计算机科学与技术专业的重要专业课程之一。随 着互联网的蓬勃发展,计算机网络在社会经济和人们生活中占据着越来越重要的 地位,成为经济发展和现代生活不可缺少的一部分,掌握计算机网络知识成为社 会对人才的基本要求。作为培养高素质人才的高校,为了满足社会对人才的需求, 给《网络开发与应用》课程的教学提出了新的更高的要求。 计算机网络是一门实践性很强的课程,实践环节在教学过程中起着越来越重 要的作用。通过实验不仅可以加深学生对网络原理的理解和掌握,更重要的是培 养学生在网络方面的应用、管理和维护能力,并根据所学知识分析解决网络应用 过程中出现的问题。 希望同学们在使用本实验指导书及进行实验的过程中,能够帮助我们不断地 发现问题,并提出建议,使《网络开发与应用》成为具有世界一流水平的课程。 本学期授课教师为李全龙老师,参与网络课程助教环节的教师为宋艳艳同学。 2
《网络开发与应用》实验指导书 实验要求 计算机网络是现代信息社会最重要的基础设施之一。在过去十几年里得到了 迅速的发展和应用。《网络开发与应用》课程实验的目的是为了使学生在课程学 习的同时,通过在一个计算机网络环境中的实际操作,对现代计算机网络的基本 功能有一个初步的了解;通过实现一个客户服务器程序,掌握 Socket编程框架, 熟悉典型的 Socket系统调用;通过一个典型的并发服务器的设计与实现,了解计 算机网络的服务器程序开发;还提供了一些设计实验以使同学们的兴趣进一步提 高。总之,通过上述实验环节,使学生加深了解和更好地掌握《网络开发与应用》 课程教学大纲要求的内容。 在《网络开发与应用》的课程实验过程中,要求学生做到: (1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出 现情况提前做出思考和分析。 (2)仔细观察上机和上网操作时出现的各种现象,记录主要情况,做出必 要说明和分析 (3)认真书写实验报告。实验报告包括实验目的和要求,实验情况及其分 析。对需要编程的实验,写出程序设计说明,给出源程序框图和清单。 (4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。 (5)实验课程不迟到。如有事不能出席,所缺实验一般不补。 实验的验收将分为两个部分。第一部分是上机操作,包括检查程序运行和即 时提问。第二部分是提交书面的实验报告。此外,网络实验采用当堂检查方式 每个实验都应当在规定的时间内完成并检查通过,过期视为未完成该实验,不计 成绩。以避免集中检查方式产生的诸多不良问题,希望同学们抓紧时间,合理安 排,认真完成
《网络开发与应用》实验指导书 实验要求 计算机网络是现代信息社会最重要的基础设施之一。在过去十几年里得到了 迅速的发展和应用。《网络开发与应用》课程实验的目的是为了使学生在课程学 习的同时,通过在一个计算机网络环境中的实际操作,对现代计算机网络的基本 功能有一个初步的了解;通过实现一个客户服务器程序,掌握Socket编程框架, 熟悉典型的Socket系统调用;通过一个典型的并发服务器的设计与实现,了解计 算机网络的服务器程序开发;还提供了一些设计实验以使同学们的兴趣进一步提 高。总之,通过上述实验环节,使学生加深了解和更好地掌握《网络开发与应用》 课程教学大纲要求的内容。 在《网络开发与应用》的课程实验过程中,要求学生做到: (1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出 现情况提前做出思考和分析。 (2)仔细观察上机和上网操作时出现的各种现象,记录主要情况,做出必 要说明和分析。 (3)认真书写实验报告。实验报告包括实验目的和要求,实验情况及其分 析。对需要编程的实验,写出程序设计说明,给出源程序框图和清单。 (4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。 (5)实验课程不迟到。如有事不能出席,所缺实验一般不补。 实验的验收将分为两个部分。第一部分是上机操作,包括检查程序运行和即 时提问。第二部分是提交书面的实验报告。此外,网络实验采用当堂检查方式, 每个实验都应当在规定的时间内完成并检查通过,过期视为未完成该实验,不计 成绩。以避免集中检查方式产生的诸多不良问题,希望同学们抓紧时间,合理安 排,认真完成。 3
《网络开发与应用》实验指导书 实验评分标准 、课堂表现(10分) 1.出勤情况(按时,迟到,早退,缺席) 2.是否遵守课堂纪律 实验结果(50分) 1.当堂按时完成(10分) 2.独立完成(10分),(和同学协商完成,在老师帮助下完成) 3.结果正确无误(10分) 4.功能齐全,界面美观,具有较好演示效果(10分) 5.在源程序中有必要的注释和说明(5分) 6.程序文档齐全(5分) 三、实验报告(40分) 1.对预习要求的回答(10分) 2.实验过程中遇到的问题如何解决的(10分) 3.实验的体会(10分) 4.思考题(10分)
《网络开发与应用》实验指导书 实验评分标准 一、课堂表现(10分) 1.出勤情况(按时,迟到,早退,缺席) 2.是否遵守课堂纪律 二、实验结果(50分) 1.当堂按时完成(10 分) 2.独立完成(10 分),(和同学协商完成,在老师帮助下完成) 3.结果正确无误(10 分) 4.功能齐全,界面美观,具有较好演示效果(10 分) 5.在源程序中有必要的注释和说明(5 分) 6.程序文档齐全(5 分) 三、实验报告(40分) 1.对预习要求的回答(10 分) 2.实验过程中遇到的问题如何解决的(10 分) 3.实验的体会(10 分) 4.思考题(10 分) 4
《网络开发与应用》实验指导书 实验1熟悉 socket编程和客户服务器编程 实验目的 1.更加熟悉VC开发环境。 2.掌握 socket编程框架。 3.熟悉典型的 socket系统调用和相关函数等,为后面几个实验奠定基础。 实验要求 、对学生要求: 1.掌握网络通信原理。 2.掌握 socket通信机制 3.掌握使用 socket的编程思想。 4.根据算法编写与实验内容相关的程序,要求该程序能实现同步通信功能。 、对实验指导教师要求: 1.熟悉VC语言。 2.熟悉 socket网络程序设计 3.编写并运行该题目程序代码,具有该题目的参考答案。 4.深刻理解题目内涵,能够清晰描述问题,掌握该题目涉及的知识点,指 导学生实验时需要注意的问题。 实验内容 在ⅤC开发环境下,使用C语言,应用 socket实现网络通信。 实验结果要求 服务器端出现两个窗口,一个是监听器窗口(此窗口显示客户端的IP地址), 另一个是服务器端对话窗口(显示客户端发送来的消息)。客户端出现带按钮的 消息发送窗口,用户就通过此对话窗口与服务器对话。程序结果窗口如图所示:
《网络开发与应用》实验指导书 实验 1 熟悉 socket 编程和客户服务器编程 实验目的 1. 更加熟悉 VC 开发环境。 2. 掌握 socket 编程框架。 3. 熟悉典型的 socket 系统调用和相关函数等,为后面几个实验奠定基础。 实验要求 一、对学生要求: 1.掌握网络通信原理。 2.掌握 socket 通信机制。 3.掌握使用 socket 的编程思想。 4.根据算法编写与实验内容相关的程序,要求该程序能实现同步通信功能。 二、对实验指导教师要求: 1.熟悉 VC 语言。 2.熟悉 socket 网络程序设计。 3.编写并运行该题目程序代码,具有该题目的参考答案。 4.深刻理解题目内涵,能够清晰描述问题,掌握该题目涉及的知识点,指 导学生实验时需要注意的问题。 实验内容 在VC开发环境下,使用C语言,应用socket实现网络通信。 实验结果要求 服务器端出现两个窗口,一个是监听器窗口(此窗口显示客户端的IP地址), 另一个是服务器端对话窗口(显示客户端发送来的消息)。客户端出现带按钮的 消息发送窗口,用户就通过此对话窗口与服务器对话。程序结果窗口如图所示: 5
《网络开发与应用》实验指导书 Client indow 回回 Todays hot news 1. Bill Gates visited tsinghua. 2. Chicago Bulls was defeat ed again. News TV Program Weather ■ Server listener Client 1 connected from /192.168.111.51 clients on line Client 2 connected from /192.168.111.51 2 clients on line Client 1 closed 1 clients on line Clinet 2 closed 0 clients on line Answer Client 2 Client connected from /192.168.111.51 Client is browsing news Client is browsing Ty Client is browsing weather Client is browsing TV Client is browsing news
《网络开发与应用》实验指导书 6
《网络开发与应用》实验指导书 编程提示 完整的客户服务器端程序的作用是先建立一个服务器程序并启动监听线程, 监听线程的窗口( Server listener)中显示出客户机连接和断开的情况。当一个 客户机程序启动并向服务器提出请求时,客户机窗口被创建,这个窗口中包含3 个按钮,当用户点击某个按钮时,程序读取服务器端的相应信息并显示在窗口中 同时在服务器端,为响应客户机的请求,一个新的线程被创建和启动,建立窗口 Answer Client n,其中n是客户机的连接序号,这个线程将监听客户机端所做的操 作并将有关信息在窗口中显示出来。当用户结束对服务器端的信息查询时,客户 机窗口被关闭,相应地,与之通信的服务器进程也结束。所有这些客户机的连接 和断开信息都将在监听进程的窗口中显示出来。 思考题 1.典型的通信发生在一个客户端和一个服务器端之间,这样的通信对应着 几个套接字?这些套接字在客户和服务器之间建立的连接是单向数据传送还是 双向数据传送? 2.如何理解套接字中端口的含义?
《网络开发与应用》实验指导书 编程提示 完整的客户服务器端程序的作用是先建立一个服务器程序并启动监听线程, 监听线程的窗口(Server Listener)中显示出客户机连接和断开的情况。当一个 客户机程序启动并向服务器提出请求时,客户机窗口被创建,这个窗口中包含3 个按钮,当用户点击某个按钮时,程序读取服务器端的相应信息并显示在窗口中; 同时在服务器端,为响应客户机的请求,一个新的线程被创建和启动,建立窗口 Answer Client n,其中n是客户机的连接序号,这个线程将监听客户机端所做的操 作并将有关信息在窗口中显示出来。当用户结束对服务器端的信息查询时,客户 机窗口被关闭,相应地,与之通信的服务器进程也结束。所有这些客户机的连接 和断开信息都将在监听进程的窗口中显示出来。 思考题 1.典型的通信发生在一个客户端和一个服务器端之间,这样的通信对应着 几个套接字?这些套接字在客户和服务器之间建立的连接是单向数据传送还是 双向数据传送? 2.如何理解套接字中端口的含义? 7
《网络开发与应用》实验指导书 实验2循环服务器 实验目的 1.熟悉循环服务器的概念 2.掌握UDP循环服务器的实现 3.掌握TCP循环服务器的实现 实验要求 、对学生要求: 1.掌握UDP循环服务器原理 2.掌握TCP循环服务器原理 3.根据算法编写与实验内容相关的程序,要求该程序能实现循环服务器功 能 二、对实验指导教师要求 1.熟悉循环服务器原理 2.编写并运行该题目程序代码,具有该题目的参考答案。 3.深刻理解题目内涵,能够清晰描述问题,掌握该题目涉及的知识点,指 导学生实验时需要注意的问题 实验内容 在vC开发环境下,使用C语言,编程实现一个循环服务器。该程序等候客户 连接,一旦连接则显示客户的地址,然后接收来自该客户的信息(字符串)。每 当收到一个字符串,则显示该字符串,并将字符串反转,再将反转的字符发回客 户。之后,继续等待接收该客户的信息直至该客户关闭连接。完成与该客户交互 后,服务器开始等待下一客户,并重复上述过程。 例如,客户连接到循环服务器上之后,并且发送了一串字符“abc”。在循环 服务器端先显示客户的地址,然后显示这个客户信息“abc”,服务器将字符反转 变成“cba”之后发会给客户。直到该客户关闭连接为止,服务器开始为下一个 客户服务。一直重复这个过程
《网络开发与应用》实验指导书 实验 2 循环服务器 实验目的 1. 熟悉循环服务器的概念。 2. 掌握UDP循环服务器的实现。 3. 掌握TCP循环服务器的实现。 实验要求 一、对学生要求: 1. 掌握 UDP 循环服务器原理。 2. 掌握 TCP 循环服务器原理。 3.根据算法编写与实验内容相关的程序,要求该程序能实现循环服务器功 能。 二、对实验指导教师要求: 1.熟悉循环服务器原理。 2.编写并运行该题目程序代码,具有该题目的参考答案。 3.深刻理解题目内涵,能够清晰描述问题,掌握该题目涉及的知识点,指 导学生实验时需要注意的问题。 实验内容 在VC开发环境下,使用C语言,编程实现一个循环服务器。该程序等候客户 连接,一旦连接则显示客户的地址,然后接收来自该客户的信息(字符串)。每 当收到一个字符串,则显示该字符串,并将字符串反转,再将反转的字符发回客 户。之后,继续等待接收该客户的信息直至该客户关闭连接。完成与该客户交互 后,服务器开始等待下一客户,并重复上述过程。 例如,客户连接到循环服务器上之后,并且发送了一串字符“abc”。在循环 服务器端先显示客户的地址,然后显示这个客户信息“abc”,服务器将字符反转 变成“cba”之后发会给客户。直到该客户关闭连接为止,服务器开始为下一个 客户服务。一直重复这个过程。 8
《网络开发与应用》实验指导书 思考题 1.什么叫循环服务器?UDP循环服务器和TCP循环服务器的区别是什么? 2.什么情况下,UDP循环服务器对于客户机的请求不能满足?
《网络开发与应用》实验指导书 思考题 1.什么叫循环服务器?UDP循环服务器和TCP循环服务器的区别是什么? 2.什么情况下,UDP循环服务器对于客户机的请求不能满足? 9
《网络开发与应用》实验指导书 实验3并发服务器(1) 实验目的 熟悉并发服务器的概念。 2.熟悉多协议服务器的概念 3.掌握UDP并发服务器的实现 4.掌握TCP并发服务器的实现。 实验要求 、对学生要求: 1.掌握UDP并发服务器原理。 2.掌握TCP并发服务器原理。 3.掌握使用 TCP Sockets构建客户服务器网络。 4.学会构建并发服务器 5.根据算法编写与实验内容相关的程序,要求该程序能实现并发服务器功 能 对实验指导教师要求 1.熟悉并发服务器原理。 2.编写并运行该题目程序代码,具有该题目的参考答案。 3.深刻理解题目内涵,能够清晰描述问题,掌握该题目涉及的知识点,指 导学生实验时需要注意的问题 实验内容 在UNⅨXKDE开发环境下,使用C语言,实现一个ECHO服务器。扩展程序 功能,实现一个既可以支持UDP服务,同时又可以支持TCP服务的多协议ECHO 服务器。 提示:考虑文件 TCPmechod. c,它含有实现ECHO服务的一个单进程服务器的代码: /*TCPmechod main, echo*/ #include #include #include #define Qlen 5 /*maximum connection queue length *
《网络开发与应用》实验指导书 实验 3 并发服务器(1) 实验目的 1. 熟悉并发服务器的概念。 2. 熟悉多协议服务器的概念。 3. 掌握UDP并发服务器的实现。 4. 掌握TCP并发服务器的实现。 实验要求 一、对学生要求: 1. 掌握 UDP 并发服务器原理。 2. 掌握 TCP 并发服务器原理。 3. 掌握使用 TCP Sockets 构建客户服务器网络。 4. 学会构建并发服务器。 5. 根据算法编写与实验内容相关的程序,要求该程序能实现并发服务器功 能。 二、对实验指导教师要求: 1. 熟悉并发服务器原理。 2. 编写并运行该题目程序代码,具有该题目的参考答案。 3. 深刻理解题目内涵,能够清晰描述问题,掌握该题目涉及的知识点,指 导学生实验时需要注意的问题。 实验内容 在UNIX/KDE开发环境下,使用C语言,实现一个ECHO服务器。扩展程序 功能,实现一个既可以支持UDP服务,同时又可以支持TCP服务的多协议ECHO 服务器。 提示:考虑文件TCPmechod.c,它含有实现ECHO服务的一个单进程服务器的代码: /*TCPmechod.c - main,echo*/ #include #include #include #include #include #include #include #define QLEN 5 /*maximum connection queue length */ 10