Windows网络编程课程设计

上传人:桔**** 文档编号:560131365 上传时间:2022-12-15 格式:DOCX 页数:14 大小:161.85KB
返回 下载 相关 举报
Windows网络编程课程设计_第1页
第1页 / 共14页
Windows网络编程课程设计_第2页
第2页 / 共14页
Windows网络编程课程设计_第3页
第3页 / 共14页
Windows网络编程课程设计_第4页
第4页 / 共14页
Windows网络编程课程设计_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《Windows网络编程课程设计》由会员分享,可在线阅读,更多相关《Windows网络编程课程设计(14页珍藏版)》请在金锄头文库上搜索。

1、目录1 设计目的及意义22 简单的需求分析23 系统总体设计.24 系统功能模块及关键代码。35 调试与测试 .126 设计体会。141。设计目的及意义。本局域网消息广播系统的设计开发 ,目的主要是为一个局域网中的服务 器向所有主机发送消息,目前公司中一般都有比较多的电脑,假如一台管理 员的电脑想向所有的其它员工电脑发送消息的话,如果通过每次只向一个员 工电脑发送消息的话,那就要发送很多次了,这样就浪费有很多时间,本系 统就是基于一个这样的目的才开发的,只要管理员电脑运行本系统服务器程 序,员工电脑运行客户端程序,只要管理员在电脑里输入一次要发送给员工 的信息,所有的员工都能马上收到发来的信息

2、,本系统的意义在于为企业, 公司等有多台电脑管理的部门提供了方便,不必重复输入相同信息 ,也不必 多次发送相同内容,节约了大量的时间。2。简单的需求分析。目前很多公司,企业及学校等等一般都有比较多的电脑,员工工作时,部 门经理也经常会与员工交流工作中的一些问题,也会向员工发布一些通知,如果向 每台员工电脑都发送一次相同的信息,就会多次重复的输入,重复发送,这样就 会降低工作效率,从而本局域网消息广播系统的应用还是比较大的,基本上目前每 个公司,企业和学校都会使用与本系统相关的系统来提高工作效率。3。系统的总体设计。本系统流程图为:4。系统功能模块及关键代码首先服务器端程序运行后,就会弹出“端口

3、设置对话框”,提示输入服务器 端的端口号,这个功能是由 CPortSetDlg 对话框类实现的,通过继承 windows 类实现,主要代码如下:class CPortSetDlg : public CDialog/ Constructionpublic:CPortSetDlg(CWnd pParent = NULL); / standard constructor/ Dialog Data/ AFX_DATA(CPortSetDlg)enum IDD = IDD_DIALOG1 ;UINT m_PortSet;/ AFX_DATA/ Overrides/ ClassWizard generat

4、ed virtual function overrides/ AFX_VIRTUAL (CPortSetDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementation protected:/ Generated message map functions/ AFX_MSG(CPortSetDlg)/ NOTE: the ClassWizard will add member functions here /AFX_MSGDECLARE_MES

5、SAGE_MAP(); 服务器端口设置好后,系统就会自动弹出一个对话框提示“服务器端口设置 ok!”,点“确定”后,就会进入服务器端主界面。主界面主要有有个输入框, 及4个功能模块:(1) 设置端口功能模块,主要是用于设置服务器端口号,主要代码如下: void CBCServerDlg::OnPortSet()/ TODO: Add your control notification handler code hereCPortSetDlg dlg;if(dlg.DoModal()=IDOK)m_pSocket=new CListenSocket; if(m_pSocket-Create(dl

6、g.m_PortSet)if(!m_pSocketListen()MessageBox(服务器端口设置错误!,”服务器端口设置); elseMessageBox (服务器端口设置ok!” , ”服务器端口设置); (2) 发送消息功能模块主要代码:void CBCServerDlg: :0n0K ()/ TODO: Add extra validation here if(!m_SocketList.IsEmpty()UpdateData();POSITION pos;CClientSocket pSocket =(CClientSocket *)m_SocketList.GetHead();

7、for(pos=m_SocketList.GetHeadPosition();pos!=NULL;)pSocket=(CClientSocket * )m_SocketList.GetNext(pos);pSocket-Send(LPCTSTR(m_OutInfo),m_OutInfo.GetLength(); else MessageBox (不能建立服务器连接,不能广播信息,”错误提示对话 框);/CDialog:OnOK();(3) 清除消息功能模块主要代码:void CBCServerDlg:OnClearOut()/ TODO: Add your control notificati

8、on handler code here m_0utlnfo。 Empty ();UpdateData(false);(4) 关闭服务器功能模块主要代码:void CBCServerDlg::OnCancel()/ TODO: Add extra cleanup here if(m_pSocket)delete m_pSocket; m_SocketList.RemoveAll();CDialog:OnCancel();CDialog::OnCancel(); 其中有个与用户连接是否成功的判断提示代码为: void CBCServerDlg:OnOK()/ TODO: Add extra va

9、lidation hereif (! m_SocketList。 IsEmpty()UpdateData();POSITION pos;CClientSocket pSocket =( CClientSocket *)m_SocketList.GetHead();for(pos=m_SocketList。 GetHeadPosition();pos!二NULL;)pSocket=(CClientSocket * )m_SocketList.GetNext(pos);pSocketSend(LPCTSTR(m_OutInfo),m_OutInfo.GetLength(); else Messag

10、eBox (”不能建立服务器连接,不能广播信息”,错误提示对 话框”);/CDialog::OnOK();void CClientSocket:OnReceive(int nErrorCode)/ TODO: Add your specialized code here and/or call the base class(CBCServerDlg*)(AfxGetApp()m_pMainWnd)-GetSocketMsg(this);CSocket:OnReceive(nErrorCode);class CBCServerDlg: public CDialog/ Construction p

11、ublic:CBCServerDlg(CWnd pParent = NULL); / standard constructorvoid GetSocketMsg(CClientSocket pSocket);CPtrList m_SocketList;CListenSocket * m_pSocket;/ Dialog Data/ AFX_DATA(CBCServerDlg) enum IDD = IDD_BCServer_DIALOG ; CString m_OutInfo;/AFX_DATA/ ClassWizard generated virtual function overrides

12、 / AFX_VIRTUAL (CBCServerDlg)protected:DDX/DDVvirtual void DoDataExchange(CDataExchange pDX); / support/AFX_VIRTUAL/ Implementation protected:HICON m_hIcon;/ Generated message map functions/ AFX_MSG (CBCServerDlg) virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_m

13、sg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnPortSet();/afx_msg void OnClearIn(); afx_msg void OnClearOut(); virtual void OnCancel(); virtual void OnOK();/AFX_MSG DECLARE_MESSAGE_MAP(); 程序运行开始时,先初始化服务器端程序主要代码是:BOOL CBCServerDlg:OnInitDialog()CDialog:OnInitDialog();/ Add ”About.

14、。” menu item to system menu。/ IDM_ABOUTBOX must be in the system command range。 ASSERT(IDM_ABOUTBOX 0xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX 0xF000);CMenu pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL)CString strAboutMenu;strAboutMenu。 LoadString (IDS_AB0UTB0X);if (!strAboutMenu.IsEmpty ()pSysMenu-AppendMenu(MF_SEPARATOR); pSysMenu-AppendMenu(MF_STRING ,IDM_ABOUTBOX,strAboutMenu); / Set the icon for this dialog. The framework does this automatically/ wh

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号