晴天-局域网通信软件设计报告
更新时间:2023-05-19 08:16: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的编程能力。
正在阅读:
晴天-局域网通信软件设计报告05-19
思科答案11-09
2018-2023年白酒包装设计行业市场全景评估及发展趋势预测报告(目录) - 图文11-09
新人教版八年级历史下册期中测试题07-18
最新2017年秋六年级语文上学期期末复习口语交际专项新人教版全真模拟质量检测试题试卷 - 图文01-04
第四章 快速傅立叶变换04-05
物理学习笔记03-19
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 通信软件
- 局域网
- 晴天
- 报告
- 设计
- 满洲里城市建设考察调研
- 高一数学诱导公式1-4练习含答案-参考模板
- 在职职工异动名册表
- “十三五”重点项目-核桃项目可行性研究报告
- 商务英语写作试卷B答案
- 《公共管理理论研究》第七讲西方政府新公共管理改革
- 汽车集团在华研发中心运作模式调研(中国汽车跳槽指南)
- 浅谈网站在交换友链时三种最有效的方法
- 2015年银行校园招聘考试面试形式
- 财务人员考核制度
- S7-300 200MODBUS通信
- FTR-P3CN012W1-01中文资料
- 七年级中国古代史复习
- 生物化学试卷及答案10套
- 2011-2015年中国家用电冰箱市场竞争格局与投资前景预测报告
- 河北省武邑中学2015届高三英语二轮复习完型专练完型专练议论文一 Word版含答案
- 开题报告——材控基于Creo的手机外壳注塑模具设计与加工
- 皮肤性病学试题及答案
- 德国迪贝特某宿舍楼及餐厅地源热泵初步设计方案0308
- 中级财务会计二作业答案(含题目)