基于C语言TCP和UDP编程实例
基于C语言TCP和UDP编程实例 本节课将介绍基于C语言的TCP和UDP编程实例,主要包括UDP协议介绍、设计目的、总体设计功能模块设计、系统流程图和广播消息发送流程图等内容。 UDP协议介绍 UDP(User Datagram Protocol)是一种简单的面向数据报的传输层协议,不提供可靠性,只把应用程序传给IP层的数据发送出去,但不能保证他们能到达目的地。广播和多播是基于UDP协议的两种消息发送机制。广播数据即从一个工作站发出,局域网内的其他所有工作站都能收到它。IP协议下,多播是广播的一种变形,IP多播要求将对收发数据感兴趣的所有主机加入到一个特定的组。 设计目的 本章实现的程序即有广播的功能又有多播的功能,能实现基本的广播和多播机制,其主要包括如下功能: 1. 提供广播机制: * 能设定身份,即是广播消息发送者还是接收者,默认是消息接收者。 * 能在默认的广播地址和端口号上发送广播消息,接收广播消息。 * 能指定广播地址,端口号,发送(或接收)数量选项进行广播消息的发送和接收。 2. 提供多播机制: * 能制定身份,即是多播消息发送者还是接收者,默认是消息接收者。 * 主机能加入一个指定多播组。 * 能以默认选项发送多播消息,接收多播消息。 * 能指定多播地址,本地接口地址,端口号,发送(或接收)数量和数据反还标志选项进行多播消息的发送和接收。 总体设计功能模块设计 本程序有3大部分组成,即广播模块,多播模块和公共模块。公共模块包括初始化模块、参数获取模块和用户帮助模块。广播模块包括广播消息发送模块和广播消息接收模块。多播模块包括多播功能控制模块,多播消息发送模块和多播消息接收模块。 系统流程图 系统流程图如图11.2所示。程序首先初始化全局变量,然后获取用户提供的参数,并初始化Winsock。如果初始化成功,则判断是进行广播还是多播程序;如果是广播,则判断是发送者身份还是接收身份,然后根据不同的身份进行相应的处理,即发送广播消息或者接收广播消息;同样地,如果是多播,也惊醒身份的判断,然后作同样的处理。 广播消息发送流程图 广播消息流程图如图11.3所示。程序首先创建UDP套接字,如果创建成功则设置广播地址;由于进行的是广播机制,所以要将套接字时针为广播类型,即SO-BROADCAST;如果套接字选想不开设置成功则可以避免向指定的广播地址广播消息了。广播结束后(即达到最多的消息条数),关闭套接字,释放占用资源。
剩余19页未读,继续阅读
- Amylllvvv2015-08-06很不错哦 挺好用的代码
- 菜鸟之嵌入式2014-10-04正好在学,下载来学习一下
- 粉丝: 0
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助