网络编程课后习题 - 图文
更新时间:2023-09-29 10:36:01 阅读量: 综合文库 文档下载
- 网络编程课后答案推荐度:
- 相关推荐
第一章 网络编程基础
1. 什么是线程,什么是进程?
答:进程是处于运行过程中的程序实例,是操作系统调度和分配资源的基本单位。 一个进程实体由程序代码、数据和进程控制块三部分构成。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。 2.描述网络应用程序的一般组成。为什么说应用层协议是在应用程序中实现的?
答:从功能上,可以将网络应用程序分为两部分,一部分是专门负责网络通信的模块,它们与网络协议栈相连接,借助网络协议栈提供的服务完成网络上数据信息的交换。另一部分是面向用户或者作其他处理的模块,它们接收用户的命令,或者对借助网络传输过来的数据进行加工,这两部分模块相互配合,来实现网络应用程序的功能。 2. 实现网间进程通信必须解决哪些问题? 答:(1)网间进程的标识问题;(2)如何与网络协议栈连接的问题;(3)协议的识别问题;(4)不同的通信服务的问题
4.说明TCP/IP中,端口的概念和端口的分配机制。
答:端口是TCP/IP协议族中,应用层进程与传输层协议实体间的通信接口。TCP/IP协议采用了全局分配(静态分配)和本地分配(动态分配)相结合的分配方法。
对于TCP,或者UDP,将它们的全部65535个端口号分为保留端口号和自由端口号两部分。保留端口的范围是0—1023,又称为众所周知的端口或熟知端口(well-known port),其余的端口号,1024-65535,称为自由端口号,采用本地分配,又称为动态分配的方法。 总之,TCP或UDP端口的分配规则是:
端口0:不使用,或者作为特殊的使用;端口1-255:保留给特定的服务,TCP和UDP均规定,小于256的端口号才能分配给网上著名的服务;端口256-1023:保留给其他的服务,如路由;
端口1024-4999:可以用作任意客户的端口;端口5000-65535:可以用作用户的服务器端口。
5.什么是网络应用进程的网络地址?说明三元组和五元组的概念。
答:应用层进程地址=(传输层协议,主机的IP地址,传输层的端口号),它标识了因特网中,进程间通信的一个端点,也把它称为进程的网络地址。 (传输层协议,主机的IP地址,传输层的端口号),这样一个三元组,叫做一个半相关(half-association)。 (传输层协议,本地机IP地址,本地机传输层端口,远地机IP地址,远地机传输层端口),五元组称为一个全相关(association)。即两个协议相同的半相关才能组合成一个合适的全相关,或完全指定一对网间通信的进程。
6.举例说明面向消息的协议与基于流动协议有什么不同。
答:例如甲向乙发送三个消息,分别是:128、64和32字节。
面向消息的协议中,如果接受缓冲区是256字节,足以接收3条消息,且这三条消息全部达到。乙仍然需要发送3条读取消息。分别返回128、64、32字节,而不用一次读取来调用者单个数据包。
基于流的消息协议中,在接收端乙的堆栈把所有进来的消息数据包聚集在一起,放入堆栈,等待应用进程读取。进程发送读取命令,指定了进程接收缓冲区,如果进程缓冲区有256字节,系统马上返回全部224字节。 7.TCP提供的服务有哪些特征?
答:应用层进程提供一个面向连接的、端到端的、完全可靠的(无差错、无丢失、无重复或失序)全
双工的流传输服务。 允许网络中的两个应用程序建立一个虚拟的链接,在任何一个方向上发送数据,把数据当作一个双向字节流进行交换,最后终止连接。 8.简要说明三类网络编程。
答:基于WWW应用的网络编程技术,包括所见即所得的网页制作工具,和动态服务器页面的制作技术。
.NET平台有四组产品 ① 开发工具 ② 专用服务器③ Web 服务。④ 设备。MS.NET顺应了软件工业的趋势,包括4个方面:① 分布式计算② 组件化③ 企业级别的服务④ WEB 范型转移。.NET平台由三层软件构成① 顶层是全新的开发工具VS.NET,② 中间层包括三部分:.NET服务器、.NET服务构件和.NET框架。③ 底层是WINDOWS操作系统。Web服务是松散耦合的可复用的软件模块,在Internet上发布后,能通过标准的Internet 协议在程序中访问,具有以下的特点:(1)可复用(2)松散耦合(3)封装了离散(4)Web服务可以在程序中访问(5)Web服务在Internet上发布 9.说明C/S模式的概念、工作过程和特点。
答:C/S模式即客户机/服务器模式,是应用程序最常用的通信模式。 服务器的工作过程是:(1)打开一通信通道,并告知服务器所在的主机,它愿意在某一公认的地址上接收客户请求。(2)等待客户的请求到达该端口。(3)服务器接收到服务请求,处理该请求并发送应答信号。为了能并发地接收多个客户的服务请求,要激活一个新进程或新线程来处理这个客户请求(如UNIX系统中用fork、exec)。服务完成后,关闭此新进程与客户的通信链路,并终止。(4)返回第二步,等待并处理另一客户请求。(5)在特定的情况下,关闭服务器。 客户方工作过程:
(1)打开一通信通道,并连接到服务器所在主机的特定监听端口。(2)向服务器发送请求报文,等待并接收应答;继续提出请求,与服务器的会话按照应用协议进行。(3)请求结束后,关闭通信通道并终止。 特点:(1)客户和服务器都是软件进程,C/S模式是网络上通过进程通信建立分布式应用的常用模型。
(2)非对称性:服务器通过网络提供服务,客户通过网络使用服务,这种不对称性体现在软件结构和工作过程上。(3)对等性:客户和服务器必有一套共识的约定,必与以某种应用层协议相联,并且协议必须在通信的两端实现。(4)服务器的被动性:服务器必须先行启动,时刻监听,及时服务,只要有客户请求,就立即处理并响应,回传信息。但决不主动提供服务。(5)客户机的主动性:客户机可以随时提出请求,通过网络得到服务,也可以关机走人,一次请求与服务的过程是由客户机首先激发的。
(6)一对多:一个服务器可以为多个客户机服务,客户机也可以打开多个窗口,连接多个服务器。
(7)分布性与共享性:资源在服务器端组织与存储,通过网络分散在多个客户端使用。 10.说明用户和客户机,服务器和服务器类计算机的区别。 答:“客户”(client)和服务器都指的是应用进程,即计算机软件。 “用户”(user)指的是使用计算机的人。
服务器(server)这个术语来指那些运行着的服务程序。
服务器类计算机(server-class computer)这一术语来称呼那些运行服务器软件的强大的计算机。
第二章 UNIX套接字编程接口
2.实现套接字编程接口的两种方式是什么?
答:一种是在操作系统的内核中增加相应的软件来实现,一种是通过开发操作系统之外的函数库来实现。 4.什么是套接字?
答:是应用程序通过网络协议栈进行通信交互的接口。 5.说明套接字特点。 答:(1)通信域。套接字通常只和同一域中的套接字交换数据。如果数据交换要穿越域的边界,就一定要执行某种解释程序。(2)套接字有三种类型,流式、数据包和原始套接字。(3)套接字由应用层创建,并为其服务,而后被释放。(4)使用确定的IP地址和传输层端口号。
6.说明套接字应用场合。
答:(1)不管是采用对等模式或者客户机/服务器模式,通信双方的应用程序都需要开发。(2)双方所交换数据的结构和交换数据的顺序有特定的要求,不符合现在成熟的应用层协议,甚至需要自己去开发应用层协议,自己设计最适合的数据结构和信息交换规程。
7.说明本机字节顺序和网络字节顺序的概念。
答:在具体计算机中的多字节数据的存储顺序,称为本机字节顺序。多字节数据在网络协议报头中的存储顺序,称为网络字节顺序。 8.流式套接口的工作过程
9.什么是阻塞问题?如何对应?
答:阻塞是指一个进程执行了一个函数或者系统调用,该函数由于某种原因不能立即完成,因而不能返回调用它的进程,导致进程受控于这个函数而处于等待的状态,进程的这种状态称为阻塞。利用UNIX操作系统的FORK()系统调用,编制多进程并发执行的服务器程序。
第三章 Windows环境的网络编程 1.试述WinSock 1.1的特点。 答:(1)WinSock 1.1 全面继承了Berkeley Sockets规范
(2)数据库函数。其中六个采用getXbyY()的形式,大多要借助网络上的数据库来获得信息,
(3)WinSock 1.1 扩充了Berkeley Sockets规范 (4)WinSock 1.1只支持TCP/IP协议栈
2.WinSock规范与Berkeley套接口的区别是什么? 答:a.套接口数据类型和该类型的错误返回值
b.select()函数和FD_*宏。在Winsock中,使用select()函数时,应用程序应坚持用FD_XXX宏来设臵,初始化,清除和检查fd_set结构。
c.错误代码的获得 在Winsock中,错误代码可以使用WSAGetLastError()调用得到。 d.指针所有应用程序与Windows Sockets使用的指针都必须是FAR指针。 e.重命名的函数。(1)close()改变为closesocket()(2)ioctl()改变为ioctlsocket() f.Winsock支持的最大套接口数目 在WINSOCK.H中缺省值是64,在编译时由常量FD_SETSIZE决定。
g.头文件 Berkeley头文件被包含在WINSOCK.H中。一个Windows Sockets应用程序只需简单地包含WINSOCK.H就足够了。h. Winsock规范对于原始套接口的支持.i.Winsock规范对于原始套接口和消息驱动机制的支持。体现在异步选择机制、异步请求函数、阻塞处理方法、错误处理、启动和终止等方面。 3.WinSock的注册和注销过程
答:注册过程:调用WSAStartup 的格式:int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData ); wVersionRequested:指定要使用的WinSock的最高版本号, lpWSAData用来返回WinSockAPI实现细节的WSAData结构变量指针。
注销过程:应用程序必须调用WSACleanup()函数,来解除与Winsock.DLL库的绑定,释放Winsock实现分配给应用程序的系统资源,中止对Windows Sockets DLL的使用。 int WSACleanup ( void );
4.说明WSAStartup函数初始化过程。
(1)查找WinSock.DLL文件,如果有WinSock实现,则调入相关信息。若无,则初始化失败。返回错误信息。(2)。确认版本号。(3)建立WinSock同应用程序的联系。(4)函数创建成功,在WSAData结构中返回许多信息,否则,通知用户“初始化失败”。 5.画框图说明同步套接字的send函数的初始化过程。
: 第四章
1.为什么说MFC是一个编程框架?它提供了哪些相应的工具?
MFC应用程序框架,简称MFC框架,是由MFC(Microsoft Foundation Class Library)中的各种类结合起来构成的。MFC框架从总体上定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员只须通过预定义的接口把具体应用程序特有的东西填入这个轮廓,就能建立Windows下的应用程序。
Microsoft Visual C++提供了相应的工具来完成这个工作:用应用程序向导(AppWizard)可以生成应用程序的骨架文件(代码和资源等);用资源编辑器可以直观地设计用户接口;用类向导(ClassWizard)可以将代码添加到骨架文件;用编译器可以通过类库实现应用程序特定的逻辑。MFC实现了对应用程序概念的封装,把类、类的继承、动态约束、类的关系和相互作用等封装起来。 2.MFC类库封装了哪些内容?
1)对Win32应用程序编程接口的封装 2)对应用程序概念的封装 3)对COM/OLE特性的封装 4)对ODBC功能的封装
3.典型的MDI应用程序AppWizard会自动创建一系列文件,如果工程的名字是My,这些文件的名字是什么?
头文件My.h,实现文件My.cpp,资源文件My.rc和模块定义文件My.def 4.说明构成应用程序的对象之间的关系。
这里,用图的形式可直观地表示所涉及的MFC类的继承或者派生关系,如图4.2所示意。
正在阅读:
网络编程课后习题 - 图文09-29
人教版五年级数学上册教学计划08-01
浅析FTTx接入网技术应用03-03
慈溪麻将规则 - 图文02-01
仪器分析试题及答案03-05
那件事真让我后悔作文600字07-05
对新课标下信息技术课程必修模块的一些思考08-16
高考议论文写法指要03-14
人机智能交互技术实验报告 - 图文07-11
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 课后
- 网络编程
- 习题
- 图文