2014大学Windows网络编程(机械工业出版社) 课后习题解答
习 题_Windows网络编程(第2版)_[共2页]
![习 题_Windows网络编程(第2版)_[共2页]](https://img.taocdn.com/s3/m/2f1d69a18e9951e79a892740.png)
242return 0;}程序的工作组流程如下。
•初始化Windows Sockets环境。
•创建完成端口对象CompletionPort。
•根据当前计算机中CPU的数量创建工作线程,并将新建的完成端口对象CompletionPort 作为线程的参数。
•创建监听Socket Listen,并将其绑定到本地地址的9990端口。
•在Socket Listen上进行监听。
•在while循环处理来自客户端的连接请求,接受连接,并将得到的与客户端进行通信的Socket Accept保存到PER_HANDLE_DATA结构体对象PerHandleData中。
将Socket Accept与前面的端口CompletionPort相关联。
•在Socket Accept上调用WSARecv()函数,异步接收Socket上来自客户端的数据。
WSARecv()函数立即返回,此时Socket Accept上不一定有客户端发送来的消息。
在工作线程中会检测完成端口对象的状态,并接收来自客户端的数据,再将这些数据发送回客户端程序。
一、选择题1.下面不属于Socket编程模型的是()。
A.Select模型B.WSAAsyncSelect模型C.WSAEventSelect模型D.完成例程模型2.下面模型使用线程池处理异步I/O请求的是()。
A.Select模型B.WSAAsyncSelect模型C.WSAEventSelect模型D.完成端口模型3.在ioctlsocket()函数中使用()参数,并将argp参数设置为非0值,可以将Socket设置为非阻塞模式。
A.FIONBIO B.FIONREADC.SIOCATMARK D.FIONONBLOCK4.在执行select()函数时如果出现错误则返回()。
A.0 B.−1C.NULL D.SOCKET_ERROR5.在WSAEventSelect模型中,调用WSAEventSelect()函数注册网络事件后,应用程序需要等待网络事件的发生,然后对网络事件进行处理。
网络编程课后习题

第一章网络编程基础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:可以用作用户的服务器端口。
Windows网络编程复习题及答案

一、填空题1.计算机网络是将分布在不同地理位置并具有独立功能的多台计算机通过通信设备和线路连接起来,在功能完善的网络软件支持下,以实现资源共享和信息传递的系统。
2.分析网络的发展和演变过程,大体可分四个阶段即面向终端、计算机-计算机系统、开放式标准化网络体系和网络的互连、高速化阶段。
3.计算机网络提供共享的资源是硬件、软件和数据三类资源,其中数据资源最重要。
4.按照网络的作用范围来分,可以分成局域网、城域网、广域网。
5.目前,无线传输介质主要有微波通信、卫星通信6.在网络中有线传输媒体主要包括双绞线、同轴电缆、光纤7.光纤根据工艺的不同分成单模光纤和多模光纤。
8.在模拟信道中,带宽是指一个物理信道传输信号的能力,即可传输信号的最高频率和最低频率之差,单位为HZ ;而在数字信道中,带宽是每秒传输的位数,单位为bps 。
9.网络连接的几何排列形状叫做网络拓扑结构。
10.使用分层技术可以把复杂的计算机网络简化,使其容易理解,并容易实现。
二、名词解释流量控制:计算机网络上对两台在相互通信的计算机之间在传送着的“帧”的调度行为。
路由问题:在复杂连接的网络内,会产生一个从这一终端端点到那一终端端点之间如何走的问题,即路由问题。
传输介质:传输介质是网络中信息传输的物理通道,是网络通信的物质基础之一,根据其物理形态分为有线介质和无线介质。
网络体系结构:计算机网络的层次及各层协议的集合三、简答:1.简述为什么要对计算机网络进行分层,以及分层的一般原则。
分层原因:1.可以将复杂的网络间题分解为许多比较小的、界线比较清晰简单的部分来处理;2.方便网络组件及产业的标准化;3.允许各种类型的网络硬件和软件相互通信;4.防止对某一层所做的改动影响到其他的层,这样就有利于开发;分层原则:1.各个层之间有清晰的边界,便于理解;2.每个层实现特定的功能;3.层次的划分有利于国际标准协议的制定;4.层的数目应该足够多,以避免各个层功能重复;2.ISO的OSI参考模型为几层?请由低到高顺序写出所有层次。
2014年计算机网络技术实用教程(第四版)习题答案(可编辑)

2014年计算机网络技术实用教程(第四版)习题答案计算机网络技术实用教程(第四版)习题答案第一章答案一、名词解释1. 计算机网络答案:计算机网络是将分布在不同地理位置上的具有独立工作能力的计算机、终端及其附属设备用通信设备和通信线路连接起来,并配置网络软件,以实现计算机资源共享的系统。
2. 单播答案:单播是指发送的信息中包含明确的目的地址,所有结点都检查该地址。
如果与自己的地址相同,则处理该信息,如果不同,则忽略3. 组播组播是将信息传送给网络中部分结点。
4. 广播答案:广播是指在发送的信息中使用一个指定的代码标识目的地址,将信息发送给所有的目标结点。
当使用这个指定代码传输信息时,所有结点都接收并处理该信息。
5. 网络拓扑答案:网络拓扑是指计算机网络的物理连接方式叫做网络的拓扑结构。
6. 带宽答案:在通信线路上传输模拟信号时,将通信线路允许通过的信号频带范围称为线路的带宽。
二、填空题1.广域网、城域网、局域网、接入网。
2.广播网络、点对点网络3.单播、组播、广播4.资源子网、通信子网5.汇聚层、接入层6.传输的距离、传输技术、使用的线路、带宽7. 发送时延、传播时延、处理时延三、选择题1-5 BAAAB 6-9DCBB四、简答题1. 计算机网络组成的三要素是什么?答案:一个计算机网络必须具备以下3个基本要素: (1)至少有两个具有独立操作系统的计算机,且它们之间有相互共享某种资源的需求。
(2)两个独立的计算机之间必须用某种通信手段将其连接。
(3)网络中的各个独立的计算机之间要能相互通信,必须制定相互可确认的规范标准或协议。
2. 计算机网络具有哪些功能?答案:计算机网络的功能有:(1)数据通信(2)计算机系统的资源共享(3)进行数据信息的集中和综合处理(4)能均衡负载,相互协作(5)提高了系统的可靠性和可用性(6)进行分布式处理3. 计算机网络的发展可划分为几个阶段?每个阶段各有何特点?答案:(1)具有通信功能的单机系统特点:单机系统中,主计算机负担较重,既要进行数据处理,又要承担通信功能。
2014大学Windows网络编程(机械工业出版社)课后习题解答

1 《Windows 网络编程基础》习题解答第一章网络应用程序设计基础习题1.TCP/IP 协议栈的五个层次是什么?在这些层次中,每层的主要任务是什么?解答:TCP/IP 参考模型分为五个层次:应用层、传输层、网络层、链路层和物理层。
以下分别介绍各层的主要功能。
应用层是网络应用程序及其应用层协议存留的层次。
该层包括了所有与网络相关的高层协议,如文件传输协议(File Transfer Protocol ,FTP )、超文本传输协议(Hypertext Transfer Protocol ,HTTP )、Telent (远程终端协议)(远程终端协议)、简单邮件传送协议(Simple Mail Transfer Protocol ,SMTP )、因特网中继聊天(Internet Internet Relay Relay Relay Chat Chat ,IRC )、网络新闻传输协议(Network Network News News Transfer Protocol ,NNTP )等。
传输层的功能是使源端主机和目标端主机上的对等实体可以进行会话。
在传输层定义了两种服务质量不同的协议,即:传输控制协议(Transmission Transmission Control Control Control Protocol Protocol ,TCP )和用户数据报协议(User Datagram Protocol ,UDP )。
网络层是整个TCP/IP 协议栈的核心。
它的功能是通过路径选择把分组发往目标网络或主机,进行网络拥塞控制以及差错控制。
链路层负责物理层和网络层之间的通信,将网络层接收到的数据分割成特定的可被物理层传输的帧,并交付物理层进行实际的数据传送。
物理层的任务是将该帧中的一个一个比特从一个节点移动到下一个节点。
该层中的协议仍然是链路相关的,并且进一步与链路(如双绞线、单模光纤)的实际传输媒体相关。
网络编程_参考答案

1、编写一服务器端程序,实现读取客户端发送过来的一组整数,表现为一组数与数之间用空格隔开的字符串。
对这组整数进行排序处理后,返回相应的字符串给客户端,如果数据格式不正确,则返回错误信息,以本机作为服务器。
public class Server {public static void main(String[] args) {BufferedReader br = null;String clientStr="";try {//创建一个监听的端口ServerSocket ss = new ServerSocket(3838);Socket s = null;System.out.println("服务器启动...");//接受客户端通信请求,并建立专用通信端口s = ss.accept();System.out.println("有客户端发送请求");Send send = new Send(s);Thread t1 = new Thread(send);t1.start();while(true){//获取客户端通信的信息br = new BufferedReader(newInputStreamReader(s.getInputStream()));clientStr = br.readLine();System.out.println("客户端:"+clientStr);}} catch (IOException e) {e.printStackTrace();}}}public class Client {public static void main(String[] args) {BufferedReader br = null;String clientStr="";try {//建立通信端口,并向服务器端发送通信请求Socket s = new Socket("127.0.0.1",3838);System.out.println("与服务器端建立连接");Send send = new Send(s);Thread t1 = new Thread(send);t1.start();while(true){//获取客户端通信的信息br = new BufferedReader(new InputStreamReader(s.getInputStream()));clientStr = br.readLine();System.out.println("服务器端说:"+clientStr);}} catch (UnknownHostException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public class Send implements Runnable{Socket s ;Scanner in = new Scanner(System.in);BufferedReader br = new BufferedReader(new InputStreamReader(System.in));public Send(Socket s){this.s = s;}public void run() {// TODO Auto-generated method stubPrintWriter out = null;try {while(true){out = new PrintWriter(newOutputStreamWriter(s.getOutputStream()),true);String str = in.next();//br.readLine();out.println(str);}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{out.close();}}}4、编写一个简单的socket通讯程序:1)、客户机程序,从控制台输入字符串,发送到服务器端,并将服务器返回的信息显示出来。
windows网络编程课后题

第一章习题1、选择题1. Internet中的主要通信协议是( D )A. HTML B.HTTP C.ARPA D.TCP/IP2.OSI参考模型将网络通信的工作划分为7个层次,不属于OSI参考模型的层次是( B )A.网络层 B.通信层 C.会话层 D.物理层3.下面关于OSI参考模型的描述,正确的是( D )A.OSI参考模型的最高层为网络层B.OSI参考模型的最高层为数据链路层C.所有的网络通信都需要经过OSI模型的全部七层D.发送方和接收方的通信必须在对等层次上进行4.下面属于数据链路层的协议是( D )A.TCP B.IP C.ARP D.PPP【二】选择题1. 下面关于IP的描述,不正确的是(B)A.IP是无线连接的协议,也就是说在通信的两个端点之间不存在连续的连接B.IP在OSI通信协议的第二层,即数据链路层C.目前应用最广泛的IP版本为IPv4D.IP是Internet Protocol 的缩写,是实现网络之间互联的基础协议2. 下面(A)是传输控制协议的缩写A.TCPB. UDPC. ATPD. ICMP3. 下面关于TCP的描述,不正确的是(D)A. 它是面向连接的传输协议B. 它和IP相结合,构成Internet 协议的核心C. TCP是一个精确传输协议,但并不是及时传输协议D. TCP的主要作用是将网络数据流压缩成数据报的形式4. 查看本地ARP缓存表的命令是(A )A. arp-aB. arp-dC. arp-gD. arp-s5. 下面关于RARP的描述,正确的是(C)A. 它是地址解析协议B. 它是可以根据局域网中一个设备的IP地址获取它的MAC地址C. RARP广泛应用与无盘工作站,用于获取IP地址D. RARP允许局域网上的主机从本地ARP缓存表中请求其IP地址6. ping命令使用的协议为(D)A. TCPB. UDPC. ARPD.ICMP7. Telnet使用(A)端口来建立连接A. TCP端口23B. UDP端口23C. ARP端口25D.ICMP端口258. 用于发送电子邮件的网络协议为(B)A. EMAILB. SMTPC.ICMPD. POP3【三】一、选择题1.目前应用最广泛的IP地址是基于IPV4的,每个IP 地址的长度为(D)位。
计算机网络课后习题与解答讲解

本文所有的习题均来自教师上课布置的题目和书上,答案是一家之言,仅供参考。
第一章计算机概论1.术语解释计算机网络网络拓扑结构局域网城域网广域网通信子网资源子网2.计算机网络的的发展可以划分为几个阶段?每个阶段各有什么特点?3.以一个你所熟悉的因特网应用为例,说明你对计算机网络定义和功能的理解。
4.计算机网络如何分类?请分别举出一个局域网、城域网和广域网的实例,并说明它们之间的区别。
5.何为计算机网络的二级子网结构?请说明它们的功能和组成。
6.常用的计算机网络的拓扑结构有哪几种?各自有何特点?试画出它们的拓扑结构图。
7.计算机网络具有哪些功能?8.目前,计算机网络应用在哪些方面?第二章网络体系结构与网络协议1.解释下列术语网络体系结构服务接口协议实体协议数据单元数据封装数据解封装2.在OSI参考模型中,保证端-端的可靠性是在哪个层次上完成的?CA.数据连路层B.网络层C.传输层D.会话层3.数据的加密和解密属于 OSI 模型的功能。
BA.网络层 B.表示层 C.物理层 D.数据链路层4.O SI 参考模型包括哪 7 层?5.同一台计算机之间相邻层如何通信?6.不同计算机上同等层之间如何通信?7.简述 OSI参考模型各层的功能。
8.简述数据发送方封装的过程。
9.O SI 参考模型中每一层数据单元分别是什么?10.在 TCP/IP协议中各层有哪些主要协议?11.试说明层次、协议、服务和接口的关系12.计算机网络为什么采用层次化的体系结构?13.试比较 TCP/IP 模型和 OSI 模型的异同点。
计算机网络为什么采用层次化的体系结构?【要点提示】采用层次化体系结构的目的是将计算机网络这个庞大的、复杂的问题划分成若干较小的、简单的问题。
通过“分而治之”,解决这些较小的、简单的问题,从而解决计算机网络这个大问题(可以举例加以说明)。
2.81.用生活中的实例说明面向连接的网络服务与无连接的网络服务解析:面向连接的网络服务与无连接的网络服务就相当于生活中的电话系统和普通邮政系统所提供服务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Windows网络编程基础》习题解答第一章网络应用程序设计基础习题1.TCP/IP协议栈的五个层次是什么?在这些层次中,每层的主要任务是什么?解答:TCP/IP参考模型分为五个层次:应用层、传输层、网络层、链路层和物理层。
以下分别介绍各层的主要功能。
应用层是网络应用程序及其应用层协议存留的层次。
该层包括了所有与网络相关的高层协议,如文件传输协议(File Transfer Protocol,FTP)、超文本传输协议(Hypertext Transfer Protocol,HTTP)、Telent(远程终端协议)、简单邮件传送协议(Simple Mail Transfer Protocol,SMTP)、因特网中继聊天(Internet Relay Chat,IRC)、网络新闻传输协议(Network News Transfer Protocol,NNTP)等。
传输层的功能是使源端主机和目标端主机上的对等实体可以进行会话。
在传输层定义了两种服务质量不同的协议,即:传输控制协议(Transmission Control Protocol,TCP)和用户数据报协议(User Datagram Protocol,UDP)。
网络层是整个TCP/IP协议栈的核心。
它的功能是通过路径选择把分组发往目标网络或主机,进行网络拥塞控制以及差错控制。
链路层负责物理层和网络层之间的通信,将网络层接收到的数据分割成特定的可被物理层传输的帧,并交付物理层进行实际的数据传送。
物理层的任务是将该帧中的一个一个比特从一个节点移动到下一个节点。
该层中的协议仍然是链路相关的,并且进一步与链路(如双绞线、单模光纤)的实际传输媒体相关。
对应于不同的传输媒体,跨越这些链路移动一个比特的方式不同。
2.请分析路由器、链路层交换机和主机分别处理TCP/IP协议栈中的哪些层次?解答:路由器处理TCP/IP协议栈的物理层、链路层和网络层;链路层交换机处理TCP/IP协议栈的物理层和链路层;主机处理TCP/IP协议栈的物理层、链路层、网络层、传输层和应用层。
3.请阐述NAT技术的主要实现方式,并思考NAT技术对网络应用程序的使用带来哪些影响?解答:网络地址转换(Network Address Translation,NAT)是接入广域网(WAN)的一种技术,能够将私有(保留)地址转化为合法的IP地址,它被广泛应用于各种类型Internet 接入方式和各种类型的网络中。
NA T的实现方式有三种,即静态转换、动态转换和端口多路复用。
NA T有效解决了IP地址短缺的问题,但是它也带来了一些新的问题。
主要体现在:处于NAT后面的主机不能充当服务器直接接收外部主机的连接请求,必须对NAT设备进行相应的配置才能完成外部地址与内部服务器地址的映射;处于不同NA T之后的两台主机无法建立直接的UDP或TCP连接,必须使用中介服务器来帮助它们完成初始化的工作。
4.某业务要求实现一个局域网上网行为监控的软件,能够对局域网内用户的上网行为(包括访问站点、使用聊天工具、发布言论等)进行截获和分析,请选择一个合适的网络程序设计方法,并说明该软件设计的主要流程。
解答:选择使用具有较强数据捕获能力的网络编程方法,如WinPcap编程或WinSock 编程中的原始套接字。
局域网上网行为监控软件的主要流程包括:1)通过交换机的镜像端口或分光方式,搭建局域网流量截获环境,能够将局域网上下行的网络流量复制出来进行后续分析;2)对镜像出的网络流量进行捕获,得到原始数据;3)对原始数据进行过滤,识别并保留与上网行为监控相关的协议数据,如HTTP、SMTP、QQ通信协议等;4)提取不同协议中监控者感兴趣的信息,如访问网址、聊天对象、发布言论等;5)分析数据,进行重点用户监控和异常行为检测。
第二章网络程序通信模型习题1.面向少量客户持续请求的服务器和面向大量客户短期请求的服务器在设计中有哪些区别?解答:面向少量客户持续请求的服务器在单位时间内处理的客户请求数量是有限的,但服务器与每个客户端之间的交互时间和频率是持续的。
在这种情况下,服务器一般设计为并发服务器,为每个客户端分配专门的线程以处理其复杂的业务需求。
面向大量客户短期请求的服务器在同一时间可能面临成百上千个客户的大量请求,但每个客户端的请求与响应比较简单。
在这种情况下,服务器需要根据客户的具体业务需求来设计。
如果是类似于时间服务的单次查询-响应服务,可选择循环服务器串行响应每个客户端的请求,避免线程膨胀和维护的复杂性;如果是类似于Web访问较复杂的服务,可选择基于完成端口的异步I/O,与线程池联合管理多个客户端的请求。
2.某业务需要实现一个文件服务器,请给出该文件服务器的设计要点。
解答:文件服务器主要处理文件的上传与下载业务,在设计时需要考虑以下要点:1)用户鉴别与权限管理。
文件服务器应具备一定的用户登录和权限管理能力,以辨别用户身份,保护文件访问的合法性。
2)数据传输可靠性。
为了确保文件服务器的传输可靠性,在传输协议选择上,可以使用TCP协议自定义文件传输过程,完成数据传输;或者使用FTP协议,用控制流进行用户授权和传输管理,用数据流具体传送文件。
3)数据传输的效率。
考虑到用户上传和下载大数据的现实体验,文件服务器应提供高效的数据传输能力,比如使用多线程机制提高效率,使用P2P模型支持多点下载等。
4)断点续传文件服务器应提供断点续传能力,确保在用户下载过程中断并恢复后,能够保存之前的数据和状态并继续后续的下载任务。
第三章网络数据的内容与形态习题1. 假设应用程序使用有符号短整型给端口号赋值,当端口号大于32768时,端口号的具体值为多少?是否合理?解答:有符号短整型能够表示的数据范围是-32768~32767,当端口号n 大于32768时,短整型最左边一位为1,端口号的值为负数,即-(216-n ),这样表示是不合理的,应该选用无符号短整型来描述端口号。
2. 大端字节顺序和小端字节顺序是CPU 处理多字节数的不同方式。
例如“汉”字的Unicode 编码是0x6C49。
那么存储在内存中时数据是如何存储呢?请在自己的系统平台下观察字节在内存中的具体存储方式。
解答:在基于X86平台的PC 机中,汉字的Unicode 编码是6C49,存储在内存中是小端字节序的,具体存储顺序如下:数值: 0x6c490x490x6c015小端字节顺序3. 试考虑一个15字节的消息结构:structintegerMessage {uint8_t onebyte;uint16_t twobytes;uint32_t fourbytes;uint64_t eightbytes;}请问,该消息结构在内存中的实际布置如何?该结构的长度为多少?解答:由于字节对齐的原因,该消息结构在内存中的实际布置如下:4. 假设一个端口扫描应用程序被设计为递增IP 地址和TCP 端口,并手工构造和发送TCP 扫描包给目标方,那么在每次发送数据前,TCP 扫描包的哪些字段需要修改,如何修改?解答:TCP 端口扫描程序面向给定的目的主机,对指定的端口范围进行扫描,扫描过程一般是向目标主机的端口号发送SYN 请求,并接收对方的应答,如果对方反馈了SYN 应答包则说明该端口开放,否则认为端口不开放。
手工构造TCP 扫描包涉及到IP 首部和TCP 首部的构造,那么在探测过程中,每次TCP 扫描包需要修改的字段主要有:IP 首部中目的IP 地址、IP 首部的校验和清零后重新计算、TCP 首部的目标端口号、TCP 首部的校验和清零后重新计算。
5. 请设计一个远程投票系统的消息传送协议,具体内容包括:1)投票协议标识2)投票消息类型3)投票候选人标识4)投票结果使用文本串和二进制两种方式设计投票消息以满足以上需求。
解答:基于文本串的消息描述方式需要定义一些固定含义的文本串来标识消息内容。
比如:“VOT ”指明投票协议,“TYPE :”指明消息类型,“CANDIDATE :”指明候选人,“RESULT :”指明结果。
则一个具体的消息可以表示为由消息标识声明的文本串,如“VOT TYPE :2;CANDIDATE :peter ;RESULT :true ”,假设投票消息传送协议基于TCP 协议承载,在具体传输过程中,使用一种编码方式(如:Unicode 编码)对该文本串进行描述,并作为TCP 协议的数据部分传输。
基于二进制的消息描述方式使用固定大小的数据区域存储消息内容,比如设计投票消息传送协议格式如下:015定义:协议标识0x01代表投票协议消息类型0x02代表投票消息候选人标识0x05代表候选人“peter ”的唯一标识投票结果0x01代表投票,0x02代表反对那么一次对候选人peter 的赞成投票的投票消息为:0x01020501.假设投票消息传送协议基于TCP 协议承载,在具体传输过程中,二进制描述的投票消息可以直接作为TCP 协议的数据部分传输。
第四章协议软件接口习题1. 阐述使用Windows Sockets 编程的环境配置过程。
解答:Windows Sockets 实现一般由两部分组成:开发组件和运行组件。
开发组件是供程序员开发Windows Sockets 应用程序使用的,它包括介绍Windows Sockets 实现的文档、Windows Sockets 应用程序接口(API )引入库和一些头文件。
头文件winsock.h 、winsock2.h 分别对应于WinSock 1.1和WinSock2.2,是Windows Sockets 最重要的头文件,它们包括了Windows Sockets 实现所定义的宏、常数值、数据结构和函数调用接口原型。
运行组件是Windows Sockets 应用程序接口的动态链接库(DLL ),应用程序在执行时通过装入它实现网络通信功能。
两个版本的动态链接库以及与其对应的接口引入库和头文件如下所示。
对动态链接的使用,需要在程序编译前将对应的头文件引入源文件,以便编译环境可以找到相应函数和变量的声明,并在项目中引入静态链接库文件,以便在程序编译通过后,连接时可以找到套接字函数的执行地址。
以Windows Sockets2.2版本为例,对头文件的引入使用以下代码段:#include “winsock2.h”对静态链接库的引入使用以下代码段:#pragma comment(lib,"ws2_32.lib")或者在开发环境中的项目菜单中配置增加对“ws2_32.lib”文件的引入,如下图所示。
2.考虑一种提供消息传递的操作系统,阐述如何扩展应用程序接口使其适用于网络通信?解答:提供消息传递的操作系统典型的例子是Windows操作系统,该系统最大的特点是图形化的操作界面,其图形化界面是建立在消息处理机制这个基础之上的。