版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、内容摘要.31.设计内容.31.设计目标.32.设计要求.3两个设计原则.3三个设计过程.41.程序设计流程和源代码.4(1)流程图.4(2)源代码.4I服务器.4二级客户.92.调试和分析过程的描述.3.结果分析.19结论.20参考资料.20摘要当今世界处于信息时代,计算机和通信网络是这个时代所谓的“信息基础设施”。如今,随着互联网的普及,网上聊天已经成为许多“网虫”的家常便饭。聊天室程序可以说是互联网上最简单的多点通信程序。从程序员的角度来看,一个简单的聊天室就是实现多个输入/输出端点之间的多对多通信。基于套接字的局域网通信是一种灵活、易于实现且成本低廉的方法。它可以运行在各种网络上,使用
2、TCP/IP协议作为通信协议。借助SOCKET API,可以方便地开发基于SOCKET的局域网通信软件。正文一、设计内容1.设计目标综合运用本课程和计算机网络相关知识,设计并实现一个网络应用程序,以Visual C为开发平台,通过实践复习巩固课堂上所学的理论知识,提高所学知识的综合应用能力。2.设计要求采用客户机/服务器模式,分为客户机程序和服务器程序。服务器采用任意一种WINSOCK输入输出模式,支持多个客户同时在线聊天。客户端程序和服务器程序通过网络交换聊天字符串内容,服务器窗口的列表框显示当前在线用户,支持客户端之间的私人聊天(可以通过服务器传输,也可以考虑通过UDP孔直接建立端到端连接
3、)。二、设计原则在服务器通过socket()系统调用创建Socket数组之后(即,设置了接受连接的最大客户端数量),它将bind()与指定的本地端口绑定,然后它可以在端口上侦听listen()。如果有客户端连接请求,请在阵列中选择一个空套接字,并将客户端地址分配给该套接字。然后成功登录的客户可以在服务器上聊天。客户端程序相对简单,只需要建立一个Socket来连接服务器,并在成功后通过这个Socket发送和接收数据。套接字聊天室的基本原理是抛弃CGI(公共网关接口)和www服务器,根据html规范,在接收到浏览器请求后,模仿www服务器的响应,将聊天内容发送回浏览器。在浏览器看来,它总是处于页面
4、连接的状态,就像浏览一个巨大的页面,这是一个特殊的聊天服务器和一个简化的www服务器。第三,设计过程1.编程流程和源代码(1)流程图(2)源代码I服务器:/ServerDlg.cpp :实现文件/#包括 stdafx.h #包括“服务器”#include ServerDlg.h #ifdef _DEBUG#定义新的调试_新建#取消此文件的定义静态字符THIN _ FILE=_ _ FILE _ _;#endif/用于应用程序的弹出对话框关于CAboutDlg :公共CDialog类public:CAboutDlg();protected:声明消息映射();caboutdlg : caboutd
5、lg(): CdIALog(caboutdlg : IDD)void caboutdlg : odataexchange(Cdataexchange * PdX)CDialog:DoDataExchange数据交换数据交换(PdX)。开始消息映射结束消息映射()/CServerDlg对话框cserverdlg : cserverdlg(CWnd * PParent/*=NULL */): CDialog(CServerLG : IDd,pParent)m _ HIcon=AfxGetApp()-LoadIcon(IDI _ ICONAPP);void cserverdl : odataexch
6、ange(Cdataexchange * PdX)CDialog:DoDataExchange数据交换数据交换(PdX)。DDX _控件(pDX、IDC_LIST_USER、m _ LBUSER);DDX _文本(pDX、IDC_EDIT_DISPLAY、m _ STrDISPLAY);开始消息映射开启_工作模式_系统命令()打开_工作模式_绘制()打开_ WM _ QUERYDRAGICON()已单击(开始,开始)点击(点击关闭)开启消息(接收,接收)开启消息(WM_CLIENTCLOSE,OnClientClose)开启消息(接收,接收)开启_工作模式_销毁()结束消息映射()/CServ
7、erDlg消息处理程序BOOL cserverdlg : on init dialog()cdialog : oninitdialog();断言(IDM _ ABOUBOX0x fff 0)=IDM _ ABOUBOX);断言(IDM _关于0xf 000框);CMenu* pSysMenu=GetSystemMenu(假);if (pSysMenu!=空)strAboutMenu字符串;菜单.加载字符串(IDS _ about box);如果(!菜单.IsEmpty()心理战菜单(MF _ SEPARATOR);心理战菜单(MF _ STRING,IDM_ABOUTBOX,StraboutM
8、enu);设置图标(m_hIcon,真);/设置大图标设置图标(m_hIcon,FALSE);/设置小图标m _ iNetPort=3127服务器。初始化(此);m _服务器=假;启用窗口(假);返回真;/除非将焦点设置为控件,否则返回真实的void cserverdl : onsys command(UINT NId,LPARAM lParam)if (nID0xFFF0)=IDM_ABOUTBOX)CAboutDlg dlgAbout出去.domod 1();其他CDI alog : onsys command(NId,LParam);void CServerDlg:OnPaint()if
9、 (IsIconic()CPaintDC dc(此);/用于绘画的设备上下文发送消息(WM _ ICONERASEBKGND,(WPARAM) dc .GetSafeHdc(),0);int Cxicon=GetSystemMetrics(SM _ Cxicon);int CYICON=GetSystemMetrics(SM _ CYICON);CRect矩形GetClientRect(rect);int x=(rect .宽度()-墨西哥1)/2;int y=(rect .高度()-cyIcon 1)/2;华盛顿。绘图图标(x,y,m _ HiCON);其他cdialog : OnPaint
10、();hcURSOR cserverdlg : onquerydatagicon()返回(HCURSOR)m _ HiCON;void cserverlg : onnstart()/创建套接字服务器。创建(m _ InetPort);/开始监听服务器。听();/显示c StrIngFo斯特林堡。加载字符串(IDS _ CREATE _ SERVER);显示播放(StrInFO);m _服务器=真;启用窗口(假);启用窗口(真);void cserverlg : onnclose()CloseServer();启用窗口(真);启用窗口(假);接受时作废cserverlg :()/创建新客户CMy
11、Socket *pNewClient=新的cmySocketpNewClient-初始化(此);服务器。接受(* PnewClient);/放入链表中m_lsClient .添加尾部(PnewClient);void cserverdlg : OnClientClose(WPARAM WPARAM,LPARAM lParam)cmySocket * p _ DelClient=(cmySocket *)WParam;/关闭该用户p _ DelClient-关机();茶缓冲区BUFFERSIZE;而(p _ DelClient-接收(缓冲区,BUFFERSIZE)0);p _ DelClient-关闭();/在用户链表中删除该用户位置psCur,psList=m_lsClient .getHeadPosition();CMySocket * p _ curClientwhile(psList!=空)psCur=psList .p _ Curclient=(CMysocket *)m _ LSclient .接下来(PSlist);if(p_delClient=p_curClient)m_lsClient .移除at(PScur);休息;/发送信息告诉其他用户该客户退出CString strMsgstrMsg文件加载字符串(id _ client _ close):网络
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工劳务管理与培训方案
- 2026广东深圳市优才人力资源有限公司公开招聘聘员(派遣至龙城街道)18人备考题库含答案详解(模拟题)
- 2026江苏无锡广电物业管理有限公司招聘1人备考题库含完整答案详解【易错题】
- 施工阶段协调沟通方案
- 混凝土维护保养计划方案
- 2026春季河北邯郸市曲周县博硕人才选聘87人备考题库及参考答案详解【综合题】
- 2026广东广州公交集团招聘备考题库附答案详解(巩固)
- 2026太平洋财险安庆中支招聘2人备考题库(典型题)附答案详解
- 2026贵州省旅游产业发展集团有限公司招聘3人备考题库(有一套)附答案详解
- 建筑节能设计与实施培训方案
- 2026浙江温州市公安局招聘警务辅助人员42人笔试参考题库及答案解析
- 2026广东茂名市公安局招聘警务辅助人员67人考试参考题库及答案解析
- 2026年希望杯IHC全国赛二年级数学竞赛试卷(S卷)(含答案)
- 中国抗真菌药物临床应用指南(2025年版)
- 2025-2026 学年下学期八年级英语下册教学计划
- 幼儿园春季育儿知识分享:守护成长健康同行
- 2026年六安职业技术学院单招职业适应性考试题库附答案详解(预热题)
- 2025年安徽审计职业学院单招职业适应性测试试题及答案解析
- 2026年春节后复工复产“开工第一课”安全生产培训课件
- 2025年西南计算机有限责任公司招聘笔试真题
- 2026常德烟草机械有限责任公司招聘35人笔试参考题库及答案解析
评论
0/150
提交评论