晴天-局域网通信软件设计报告
更新时间:2023-08-11 23:24:01 阅读量: 外语学习 文档下载
- 基于局域网通信软件设计推荐度:
- 相关推荐
晴天版局域网聊天程序
1 总体设计
此应用程序是基于MFC网络编程的一个聊天程序,主要用到了VC网络编程技术中的组播通信和异步套接字编程。为实现动态知道在线的主机,必须要在上线的时候给局域网内主机发布消息。而广播通信网络损耗较大,因此,选择了组播通信。同时,组播通信实现了局域网群聊这一功能。私聊板块主要利用数据链路层的UDP协议实现端到端通信。
2 详细设计
2.1 程序主界面
2.2 组播通信的实现
套接字建立---->绑定---->加入组播---->注册网络事件 BOOL CQtChatDlg::InitG()
{
SOCKADDR_IN local,remote;
bc_socket=WSASocket(AF_INET,SOCK_DGRAM,0,NULL,0,WSA_FLAG_MULTIPOINT_C_LEAF|WSA_FLAG_MULTIPOINT_D_LEAF|WSA_FLAG_OVERLAPPED); if(INVALID_SOCKET==bc_socket)
{
MessageBox("创建多播套接字失败!");
return false;
}
local.sin_family = AF_INET;
local.sin_port = htons(MCASTPORT);
local.sin_addr.s_addr = INADDR_ANY;
remote.sin_family = AF_INET;
remote.sin_port = htons(MCASTPORT);
remote.sin_addr.s_addr = inet_addr( MCASTADDR );
if(SOCKET_ERROR==bind(bc_socket,(SOCKADDR*)&local,sizeof(local))) {
MessageBox("多播绑定失败!");
return false;
}
if(INVALID_SOCKET==(sockM=WSAJoinLeaf(bc_socket,(SOCKADDR*)&remote,sizeof(remote),NULL,NULL,NULL,NULL,JL_BOTH)))
{
MessageBox("绑定失败!");
return false;
}
if(SOCKET_ERROR==WSAAsyncSelect(bc_socket,m_hWnd,UM_SOCK,FD_READ))
{
MessageBox("注册网络读取事件失败!");
return false;
}
return true;
}
2.3 指定IP通信的实现
套接字建立---->绑定---->注册网络事件
BOOL CQtChatDlg::InitT()
{
m_socket=WSASocket(AF_INET,SOCK_DGRAM,0,NULL,0,0);
if(INVALID_SOCKET==m_socket)
{
MessageBox("创建套接字失败!");
return FALSE;
}
SOCKADDR_IN addrSock;
addrSock.sin_addr.S_un.S_addr=INADDR_ANY;
addrSock.sin_family=AF_INET;
addrSock.sin_port=htons(6000);
if(SOCKET_ERROR==bind(m_socket,(SOCKADDR*)&addrSock,sizeof(addrSock)))
{
MessageBox("绑定失败!");
return FALSE;
} if(SOCKET_ERROR==WSAAsyncSelect(m_socket,m_hWnd,UM_SOCK,FD_READ)) { MessageBox("注册网络读取事件失败!"); return false; } return true;
}
2.4 通信方式的转换
通过选择不同的IP地址实现,233.0.0.1用于组播通信,127.0.0.1用于本机的通信测试。
3 操作方法说明
通过改变下拉列表的值可以改变通信方的IP。当IP=233.0.0.1时可以接受局域网用户上下线消息,还可以对所有运行此程序的主机发送广播消息,实现消息群发。消息的录入与发送在发送按钮左边的文本框和发送按钮实现。中间的文本框用于显示消息记录。刷新按钮用于及时获取用户在线信息。一般情况下,动态更新没有问题,不用进行刷新。程序在XP系统运行良好。
4 总 结
通过应用程序的设计,知道了端到端通信的实现细节,以及TCP和UDP在数据传输上的区别。学会了运用广播和组播通信的方式去实现信息的批量传输。总体上对数据链路层协议有了更深的理解,同时锻炼了VC的编程能力。
正在阅读:
晴天-局域网通信软件设计报告08-11
2018年南京师范大学F043国际经济法学考研复试核心题库05-04
中国最具投标实力电线电缆供应商五十强05-23
小学书法校本课程教案 - 图文04-24
最新房地产销售案场管理制度10-16
篮球校本课程系列教案04-29
诚信,一年级作文02-06
广州地埋式污水处理厂施工组织设计04-26
游长隆海洋王国作文350字07-07
- 奶牛焦虫病的诊断与防治 - 医学期刊频道--首席医学网
- 外包工程发包流程
- 管理信息系统(路晓丽版)课后题答案(1-12章全)
- 小学语文课题研究方案
- 企业内部培训师管理制度
- 《史记》拓展阅读设计
- 入口广场铺装施工方案
- 附录B塔式起重机安装验收记录表
- 云南省昆明三中2014-2015学年高二下学期期中考试物理试卷 (Word版含答案)
- 郑州大学毕业设计附件
- 民俗学视野下的中国百年歌谣研究
- 巩固练2020统编版(2019)高二选择性必修上册第一单元阶段复习 第一单元仿真模拟训练
- 量化研究学习书单
- 给尾注编号加方括号超级简单方法
- 第1课《放大镜》
- 定价的步骤及新产品定价策略(1)
- 八年级英语下册第六单元基础知识
- 全省地方志工作会议综述
- An Investigation of Tightly Coupled Time Synchronous Speech Language Interfaces Using a Uni
- 新目标英语八年级(上)单元测试题(Units6-7)
- 通信软件
- 局域网
- 晴天
- 报告
- 设计
- 人教版美术七年级上册第二课_美术是个大家族
- 心理咨询师案例分析整理.
- 2017年成都房地产市场半年报20170710
- 最新中信证券招聘笔试复习大纲历年完整真题机考系统手机app题库
- 基础会计学期末考试试卷 2卷
- CNPC海外操作人员西班牙语日常用语300句
- 我的求职计划书
- DOP安全技术说明书
- 4.罗氏电化学发光原理
- 魔龙诀快速升级攻略之每天日常篇
- 开题报告的写法
- 1MRK502018-SZH_A_zh_Generator_protection_IED_REG_670_(cn)
- 钢化玻璃粘结工艺
- 神河建管处监理工作管理办法
- 计算机网络实验报告
- 生物化学试卷及答案10套
- 中国政法大学北大法宝中文及中英文对照文
- 公共关系学课程资料(2012学生用)
- 滚筒筛操作维护检修规程
- 汽车集团在华研发中心运作模式调研(中国汽车跳槽指南)