广播通信设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机网络 课程设计报告

课 题: 广播通信设计 专 业 班 级: 计科10101班 姓名(学号): 晏丽君(201017010142)

: 胡 涛 (201017010102)

指 导 教 师: 梅 晓 勇

目 录

评阅意见:

评定成绩:

指导老师签名:

年 月 日

目录

1.目的和意义 (2)

1.1 设计目的 (2)

1.2 设计意义 (2)

2.基本原理 (2)

2.1概述 (2)

2.2作用 (3)

3.需求分析 (3)

3.1系统功能需求分析 (3)

3.2 功能函数部分 (3)

4.概要设计 (3)

4.1编程环境 (3)

4.2 模块分析 (4)

5.详细设计 (4)

5.1具体实现过程 (5)

5.2主要数据结构 (8)

6.嗅探器的实现与测试 (8)

6.1实现与测试 (8)

7.心得结论 (12)

8.参考文献 (12)

1.目的和意义

1.1设计目的

1.掌握广播通信技术;

2.了解基于Winsock API的消息机制和编程应用方法;

3.了解Windows SDK编程架构。

1.2设计意义

通过此次课程设计,能够基本掌握广播通信技术,了解基于Winsock API 的消息机制和编程应用方法,以及Windows SDK编程架构。通过查阅资料,了解单播、广播、多播的区别和联系,以及各自的优缺点和适应范围,并能够在此基础上,完成广播通信的设计。

2.基本原理

2.1概述

根据Socket通信原理实现网络中的基于TCP方式的广播通信。

服务器端:

(1)首先,在实用Socket之前,要首先初始化Socket;

(2)在初始化完成以后,就可以建立服务端的Socket,然后实用该Sokcet 开始侦听整个网络中的连接请求。

(3)当检测到来自客户端的连接请求时,向客户端发送收到连接请求的信息,并建立与客户端之间的连接。在建立连接的过程中,会产生一个新的Socket,我们使用找个Socket来进行数据的通信;

(4)在通信的过程中,服务器端的产生的新的Socket会通过一个消息响应函数来接受到达的数据。数据的发送可以使用ServerGUI()来完成;

(5)当完成通信后,服务器关闭与客户端的Socket连接。

客户端:

(1)初始化Socket,并建立客户端的Socket,确定要连接的服务器的主机名和端口;

(2)发送连接请求到服务器,并等待服务器的回馈信息;

(3)连接成功后,与服务器进行数据的交互;

(4)数据的读取是通过ListenServer()来完成的,数据的发送通过Client GUI()即可;

(5)数据处理完毕后,关闭自身的Socket连接。

2.2作用

主机之间采用“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以使得网络成本可以很低廉。

3.需求分析

3.1系统功能需求分析

在计算机网络间的通信中,单播和组播有其独特的优势:单播的信息的接收和传递只在两个节点之间进行;多播既可以一次传送所有的数据,也可以达到只对特定对象传送数据的目的。虽然如此看来,单播和多播足以应对网络间的通信。但是,他们也有一定的缺陷:单播的服务器针对每个客户机发送数据流,在客户数量大,客户机流量大的流媒体应用中,服务器会不堪重负;而多播与单播协议相比没有纠错机制,发生丢包错包后难以弥补。

所以,这就使得广播有了更大的需求和存在性。广播不仅网络设备简单,维护简单,布网成本低廉,而且由于服务器不用向每个客户机单独发送数据,服务器流量负载极低。

在此次广播通信的设计中,通过启动服务器,然后客户端发送连接服务器的请求,便可实现服务器端到客户端的广播。

3.2功能函数部分

1.getInputStream()

说明:从对方获取输入流;

2. getOutputStream()

说明:从对方获取输出流;

3. printStackTrace()

说明:将信息打印在控制台上;

4. elementAt(i)

说明:返回vector里面存放的第i个元素;

5.close()

说明:用于关闭一个被打开的的文件;

6. run()

说明:为用户界面线程提供默认的消息循环;

7. ServerGUI()

说明:服务器端的图形界面设计;

8. ClientGUI ()

说明:客户端的图形界面设计;

9.getContentPane()

说明:初始化一个容器,用来在容器上添加上添加一些控件;

4.概要设计

4.1编程环境

1.Microsoft Windows XP操作系统

2.Eclipse

3.7.2 软件

4.2模块分析

1.服务器模块:

服务器端需要引入两个包,java.io包和包,io包是解决输入输出流的问题,net包包含了socket编程所需要的API,服务器端首先要得到ServerSocket的对象;服务器端Socket对象通过accept()方法开始监听连接过来的客户端信息。如果有客户端信息过来,则对象soc调用输入输出流的方法,soc.getInputStream(),同时把得到的getInputStream封装在DataInputStream当中,在客户端通信时,有可能两端存在于不同的操作系统,DataInputStream可以很好的解决这个问题。

2.客户端模块:

客户端代码与服务器端大多类似,有一点显著不同,在客户端没有ServerSocket类,即客户端不用监听任何连接,只需要发送即可。通过与服务器端的连接,就可以得到聊天对象soc。客户端必须首先通过readUTF()读取信息,才能接收服务器发送来的信息。

3.监听模块:

包含监听服务器端发送的消息ListenServer()和监听客户端发送的连接请求以及发送的消息ListenClient()。

4.其他功能模块:

包含服务器端服务器的启动,服务器的关闭以及客户端的与服务器的连接和客户端的关闭。

5.详细设计

5.1具体实现过程

1.流程图

相关文档
最新文档