2.2.2 小试牛刀--模拟实现Windows的UDP程序(2)
(1) 公共模块
初始化模块:主要用于初始化全局变量,为全局变量赋初始值。
参数获取模块:用于获取用户提供的参数,包括获取广播参数,多播参数和区分广播与多播公共参数等。
用户帮助模块:用于显示用户帮助,包括显示公共帮助,广播帮助和多播帮助。
(2) 广播模块
广播消息发送模块:用于实现在指定广播地址和端口发送指定数量的广播消息。
广播消息接收模块:用于实现在指定广播地址和端口接收指定数量的广播消息。
(3) 多播模块
多播功能控制模块:用于实现多播套接字的创建和绑定、多播地址的设定、多播数据的设置、数据返还选项的设置,以及多播组的加入等。
多拨消息发送模块:用于实现在指定多播组发送多播消息。
多播消息接收模块:用于实现在指定多播组接收多播消息。
3. 系统流程图
系统流程图如图2-11所示。
|
| (点击查看大图)图2-11 系统流程图 |
程序首先初始化全局变量,包括广播(多播)地址、端口号、发送(接收)消息数量等,然后获得用户提供的参数,并初始化Winsock,初始成功则判断是进行广播还是多播,如果是广播,则判断是发送者身份还是接收身份,然后根据不同的身份进行相应的处理,即发送广播消息或者接收广播消息;如果是多播,也进行身份的判断,然后做同样的处理。