具有大量并发用户请求的场合。
4. 假设某时间服务器使用UDP协议通信,同一时间仅有少量客户端请求,每次请求的主
要过程是建立连接后获取时间,之后断开连接,试选择一种适合的网络I/O通信模型,并阐明原因。
解答:选择使用WSAAsyncSelect模型或WSAEventSelect模型处理网络I/O,这两个模型使用异步方式进行I/O事件通知,不会使应用程序阻塞于网络事件的等待上,灵活性较好,同时程序的实现比较简单,可以满足业务复杂性不高且对性能要求不高的简单时间服务器的设计需求。
实验
1. 请使用I/O复用模型设计一个支持多协议的回射服务器。要求综合流式套接字和数据报
套接字编程,基于I/O复用模型管理多个套接字上的网络事件,实现支持TCP和UDP协议的回射服务器,服务器能够接收使用不同协议客户端的回射请求,将接收到的信息发送回客户端。
解答:实现过程具体见《Windows网络编程实验》。
2. 请使用WSAAsyncSelect模型设计一个简单的局域网聊天工具。要求使用数据报套接字,基于WSAAsyncSelect模型异步管理套接字上的网络事件,使用UDP协议实现局域网内两台主机的文字聊天功能。
解答:实现过程具体见《Windows网络编程实验》。
3. 请设计一个并发的HTTP代理服务器。要求使用流式套接字编程,基于完成端口模型管理多个套接字上的网络事件,实现并发的HTTP代理服务器,能够同时接收多个用户通过浏览器提交的Web网页访问请求,并将其合理解析后发送给服务器,获取服务器返回的页面应答,递交回请求的客户端。
解答:实现过程具体见《Windows网络编程实验》。
第九章 WinPcap编程
习题
1. 请比较使用原始套接字和WinPcap两种方式实现网络嗅探器的差别,从工作层次、数据内容、协议类型和调用方法等方面进行区分。
解答:尽管原始套接字和WinPcap都能够对较低层的网络通信流量进行发送和接收,但
两种编程方法之间是有差别的,主要表现在以下几点:
1) 工作层次:在Windows环境下,WinPcap工作在网卡驱动之上,能够操控链路层的
原始数据帧;原始套接字工作在协议栈实现之上,能够操控网络层的原始数据包。 2) 数据内容:包括帧首部在内的所有内容都是可以被WinPcap捕获和构造的;使用原
始套接字接收和构造的数据不包括帧首部。
3) 协议类型:WinPcap可以发送和接收包括IP、ARP、RARP等协议上传输的数据;
原始套接字不能配置帧类型,因此只能发送和接收IP协议及IP协议承载的其它协议。
4) 调用方法:使用WinPcap需要安装WinPcap驱动;使用原始套接字不需要附加的驱
动。
实验
1. 请使用WinPcap编程实现ARP欺骗,该程序能够构造ARP请求包或响应包,携带错误
的IP地址和MAC地址对应关系,改变局域网内主机ARP缓存中IP地址与MAC地址的对应关系。
解答:实现过程具体见《Windows网络编程实验》。
2. 请使用WinPcap编程实现一个用户级网桥,该网桥能够在多网卡主机上运行,从一个网卡中接收数据并将其转发到另一个网卡上,从而在数据链路层将网络中的多个网段连接起来。
解答:实现过程具体见《Windows网络编程实验》。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Windows网络编程基础-习题解答(4)在线全文阅读。
相关推荐: