网络程序设计复习题(共9页).doc

上传人:飞****2 文档编号:13401030 上传时间:2022-04-29 格式:DOC 页数:9 大小:212.50KB
返回 下载 相关 举报
网络程序设计复习题(共9页).doc_第1页
第1页 / 共9页
网络程序设计复习题(共9页).doc_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《网络程序设计复习题(共9页).doc》由会员分享,可在线阅读,更多相关《网络程序设计复习题(共9页).doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上1. TCP/UDP在传输层;IP在网络层;MAC在数据链路层2. NAT的实现方式有三种,即静态转换、动态转换和端口多路复用3. 端口号是16位的,范围在0655354. 在套接字通信中,常用套接字类型包括三类:流式套接字、数据报套接字和原始套接字 流式套接字(其类型字段的值是SOCK_STREAM): 提供面向连接的、可靠的字节流服务,应用程序所访问的传输层协议是TCP协议。 数据报式套接字(其类型字段的值是SOCK_DGRAM): 提供无连接的,不可靠的数据报服务,应用程序所访问的传输层协议是UDP协议。 原始套接字(其类型字段的值是SOCK_RAW): 允许应

2、用程序直接对较低层的协议,如IP、ICMP进行访问。5. 有状态服务器定义:保存状态信息的服务器优势:减少客户和服务器交换报文的大小;允许服务器快速相应请求 无状态服务器定义:不保存任何状态信息的服务器优势:提高协议的可靠性6. 并发服务器定义:在一个时刻只处理一个请求的服务器 循环服务器定义:在一个时刻可以处理多个请求的服务器7. 面向应用的网络编程方法(1) WinInet编程(2) 基于WWW应用的网络编程(3) 面向SOA的Web Service8. 面向原始帧的网络编程方法(1) 直接网卡编程技术(2) 基于Packet Driver的网络编程方法(3) 基于NDIS的网络编程(4)

3、 WinPcap编程9. UDP是无连接的;TCP是面向连接的意义:决定了客户和服务器交互所采用的算法;决定了下层系统所提供的可靠性等级;面向连接的服务器优点:易于编程缺点:资源消耗问题无连接的服务器优点:无资源消耗问题缺点:编程复杂10. bind和listen函数是非阻塞的11. B/S模型B/S(Browse/Server)模型也叫B/S模式,它是一种基于Web的通信模型,使用HTTP通信。B/S是一种特殊的C/S模型,特殊之处就在于这种模型的客户端一般是某种流行的浏览器,例如,微软的Internet Explorer。优点:单台计算机可以访问任何一个Web服务器,不需要针对不同的服务器

4、分别提供专用的客户端软件。12. 客户/服务器模型 优点:(1)结构简单 (2)支持分布式、并发环境 (3)服务器集中管理资源,有利于权限控制和系统安全 (4)可扩展性好 缺点:(1)缺乏有效的安全性 (2)客户负荷过重 (3)服务器工作效率低 (4)容易造成网络阻塞13. 浏览器/服务器模型 优点:(1)具有分布性特点,可以随时随地进行查询、浏览等业务处理 (2)业务扩展简单方便,通过增加网页即可增加服务器功能 (3)维护简单方便 (4)开发简单,共享性强 缺点:(1)操作时以鼠标为最基本的操作方式,无法满足快速操作的要求 (2)页面动态刷新,响应速度明显降低 (3)功能弱化,难以实现传统模

5、式下的特殊功能要求14. 字节顺序:大端顺序和小端顺序15. Linux中提供的基本I/O功能16. 会聚点问题的解决方案1)要求下层通信协议在请求报文到达后自动创建运行程序底层通讯程序太复杂!2)要求在任何一对进行通信的应用进程中,有一方必须在启动执行后(无限期)等待对方与其联系。客户服务器模型的解决方案17.客户端通信过程:socket初始化;创建套接字,指定使用TCP(可靠的传输服务)进行通信;指定服务器地址和通信端口;向服务器发送连接请求;进行数据传输;关闭套接字;结束对windows sockets dll的使用。18.服务器通信过程:socket初始化;创建套接字,指定使用TCP(

6、可靠的传输服务)进行通信;指定本地地址和通信端口;等待客户端的连接请求;进行数据传输;关闭套接字;结束对windows sockets dll的使用。19.接收函数的调用结果有很多种完整接收流数据int iResult, recvbuflen;char recvbuf MSGSZ;do iResult = recv(ConnectSocket, recvbuf, recvbuflen, 0); if ( iResult 0 ) printf(Bytes received: %dn, iResult); else if ( iResult = 0 ) printf(Connection clos

7、edn); else printf(recv failed with error: %dn, WSAGetLastError(); while( iResult 0 );20.接收定长数据int recvn(SOCKET s, char * recvbuf, unsigned int fixedlen) int iResult; /存储单次recv操作的返回值 int cnt; /用于统计相对于固定长度,剩余多少字节尚未接收 cnt = fixedlen; while ( cnt 0 ) iResult = recv(s, recvbuf, cnt, 0); if ( iResult recv

8、buflen ) /如果recvbuf没有足够的空间存储变长消息,则接收该消息并丢弃,返回错误 while ( reclen 0) iResult = recvn( s, recvbuf, recvbuflen ); if ( iResult != recvbuflen ) /如果变长消息在接收时没有返回足够的数据就返回(连接关闭)或-1(发生错误) if ( iResult = -1 ) printf(收发生错误:%dn, WSAGetLastError(); return -1; else printf(连接关闭n); return 0; reclen -= recvbuflen; /处理

9、最后一段数据长度 if ( reclen recvbuflen ) recvbuflen = reclen; printf(可变长度的消息超出预分配的接收缓存rn); return -1; /接收可变长消息 iResult = recvn( s, recvbuf, reclen ); if ( iResult != reclen ) /如果消息在接收时没有返回足够的数据就返回(连接关闭)或-1(发生错误) if ( iResult = -1 ) printf(接收发生错误: %dn, WSAGetLastError(); return -1; else printf(连接关闭n); retur

10、n 0; return iResult;简答题2、阐述程序、套接字、端口和协议之间的关系程序和套接字的关系:一个程序可以同时使用多个套接字,不同套接字完成不同的传输任务。多个应用程序可以同时使用同一个套接字,不过这种情况并不常见。套接字和端口的关系:每个套接字都有一个关联的本地TCP或UDP端口,它用于把传入的分组指引到应该接收它们的应用程序。一个端口上可能关联多个套接字,流式套接字的服务器上可能同时有监听套接字和连接套接字,它们都与一个TCP的端口号相关联;一个套接字一般只会关联一个唯一的本地端口号。端口和协议的关系:TCP和UDP的端口号是独立使用的。3、在基于流式套接字的网络应用程序设计

11、中,假设客户端以8字节-12字节-8字节-12字 节的顺序交替发送数据给服务器,请思考,服务器的接收操作每次能够接收到多少字节的数据?为什么?服务器接收操作每次能够接收到的数据长度是不确定的,这是因为TCP传送数据的形态是没有间隔的字节流,数据接收仅与接收调用的时间和当前主机内核缓存中尚未提交应用程序的数据有关,与发送端发送多少次和TCP如何传送没有直接的关系,我们不能准确地预测一个特定的接收操作到底返回多少字节。4.在服务器和客户的通信过程中,服务器是如何处理多个客户服务请求的呢?1)如果是循环服务器,则服务器在与一个客户建立连接后,其他客户只能等待;当一个客户服务完之后,服务器才会接收另一

12、个客户的服务请求;即循环服务器的通信流程中,蓝色的3个步骤是循环进行的;2)如果是并发服务器,则当服务器与一个客户进行通信的过程中,可以同时接收其他客户的服务请求,并且服务器要为每一个客户创建一个从进程,在从进程中用新创建的套接字与客户交互;即并发服务器的通信流程中蓝色的3个步骤,在与多个客户通信时,是并发执行的;5.为什么客户端没有bind,而服务器端需要?客户端是主动连接,而服务器是等待连接,因此服务器必须需要绑定IP地址和端口号,而客户端不需要。6. 客户端的套接字如何获得端点地址?通过getsockname()函数能够获得套接字关联的本地端点地址通过getpeername()函数能够获得套接字关联的远端端点地址7. 应用如何获知自己当前的主机地址和端口号?通过getaddrinfo()函数获知专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁