聊天室——tcpip原理及编程课程设计报告

上传人:第*** 文档编号:55671049 上传时间:2018-10-03 格式:DOC 页数:17 大小:345.01KB
返回 下载 相关 举报
聊天室——tcpip原理及编程课程设计报告_第1页
第1页 / 共17页
聊天室——tcpip原理及编程课程设计报告_第2页
第2页 / 共17页
聊天室——tcpip原理及编程课程设计报告_第3页
第3页 / 共17页
聊天室——tcpip原理及编程课程设计报告_第4页
第4页 / 共17页
聊天室——tcpip原理及编程课程设计报告_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《聊天室——tcpip原理及编程课程设计报告》由会员分享,可在线阅读,更多相关《聊天室——tcpip原理及编程课程设计报告(17页珍藏版)》请在金锄头文库上搜索。

1、TCPIP 原理及编程课程设计报告课 程 设 计 报 告 书题 目: 局域网聊天室 专 业: 网络工程 班 级: 一班 学生姓名: 贺* 学 号: 2013* 指导教师: 李* 完成日期: 2016 年 6 月 11 日 局域网聊天室TCPIP 原理及编程课程设计报告目目 录录一、任务概述一、任务概述.11.1 设计目的.1 1.2 项目背景.1二、系统需求分析和概要设计二、系统需求分析和概要设计 12.1 需求分析.1 2.1.1 服务器端工作流程.1 2.1.2 客户端工作流程.1 2.2 用例设计.2 2.3 整体框架设计.5 2.4 模块设计.5三、系统详细设计三、系统详细设计.63.

2、1 服务器.6 3.2 客户端.12 3.3 主界面 14四、总结四、总结15局域网聊天室TCPIP 原理及编程课程设计报告1一、任务概述一、任务概述1.1 设计目的设计目的本课题是建立聊天通信模型,设计一个聊天室软件,包括服务器端和客户端,通过选 择类型决定是服务器还是客户端。服务器端功能:初始化 Socket,创建服务器端,向用户 发出响应命令。客户端功能:连接服务器,消息框中输入消息,当按下“发送消息”按钮 时将信息发送给服务器。通本课题的课程设计,可以比较深入的了解和掌握 Winsock 控件 基本属性、方法和事件,理解网络聊天通信的概念,使用传输控制协议(TCP)进行数据交 流,初步

3、掌握网络聊天通信程序的设计方法。并能巩固和扩展大学期间的学习内容,进行 项目的设计开发训练,更好的适应社会的需求。1.2 项目背景项目背景 聊天室程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序连接到服 务器,就可以与在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序 要在 TCP/IP 环境下,实现服务器端和客户端两部分程序。二、系统需求分析和概要设计二、系统需求分析和概要设计2.1 需求分析需求分析 2.1.1 服务器端工作流程服务器端工作流程服务器端通过系统调用创建一个 Socket 数组后(即设定了接受连接客户的最大数目),与指定的本地端口绑定 bind(),

4、就可以在端口进行监听 listen。如果有客户端连接请求,则在数组中选择一个空 Socket,将客户端地址赋给这个 Socket。然后登客户端的用户就可以在服务器上聊天了。2.1.2 客户端工作流程客户端工作流程客户端程序相对简单,只需要建立一个 Socket 与服务器端连接,成功后通过这个Socket 来发送和接收数据就可以了。局域网聊天室TCPIP 原理及编程课程设计报告22.2 用例设计用例设计 通常来说,一个用例对应一个功能,即程序的一个执行路径或执行流程。本程序主 要 有以下几个用例:服务器运行、客户端运行,服务器端发送消息,客户端发送信息,服务 器端接收消息,客户端接收信息,服务器

5、端停止服务,客户端退出连接,服务器端关闭, 客户端关闭。 1、 服务器运行 表 2-1 服务器运行用例主路径可选路径1、运行程序,显示主窗口2、点击“网络设置”按钮,点击服务器选项,设置监听端口,开启服务器3、开启失败,重新开启4、开启服务器成功4.1 提示用户,服务器启动成功4.2 进行通信4、开启服务器成功4.1 提示用户,开启服务器成功4.2 进行通信2、客户端运行表 2-2 客户端运行用例主路径可选路径1、运行程序,显示主窗口2、点击“网络设置”按钮,点击客户端选项,设置服务器 IP、服务器端口,连接服务器服务器3、连接失败,重新连接4、连接服务器成功4.1 提示用户,连接服务器成功4

6、.2 告知服务器,客户端进入聊天室4.3 进行通信4、连接服务器成功4.1 提示用户,连接服务器成功4.2 告知服务器,客户端进入聊天室4.3 进行通信3、服务器端发送消息表 2-3 服务器端发送聊天信息用例局域网聊天室TCPIP 原理及编程课程设计报告3主路径可选路径1、输入聊天消息2、点击“发送消息”按钮,发送消息2、没有输入消息, “发送消息”按钮不可用,重新输入消息3、显示消息3.1 服务器端显示发送的消息3.2 客户端显示发送的消息4、客户端发送聊天信息 表 2-4 客户端发送聊天信息用例主路径可选路径1、输入聊天消息2、点击“发送消息”按钮,发送消息2、没有输入消息, “发送消息”

7、按钮不可用,重新输入消息3、显示消息3.1 客户端显示发送的消息3.2 服务器端显示发送的消息5、 服务器端接收聊天信息 表 2-5 服务器端接收聊天信息用例主路径可选路径1、服务器端接收聊天消息2、显示接收的聊天消息6、 客户端接收聊天信息 表 2-6 客户端接收聊天信息用例主路径可选路径1、客户端接收聊天消息2、显示接收聊天消息局域网聊天室TCPIP 原理及编程课程设计报告47、 服务器端停止服务表 2-7 服务器端停止服务用例主路径可选路径1、点击“停止”按钮,弹出对话框,点击“确定” ,停止服务1、点击“停止”按钮,弹出对话框,点击“取消” ,服务器正常工作2、显示停止成功消息8、 客

8、户端退出连接表 2-8 客户端退出连接用例主路径可选路径1、点击“退出”按钮,弹出对话框,点击“确定” ,退出连接1、点击“停止”按钮,弹出对话框,点击“取消” ,客户端正常连接2、显示连接成功消息9、 服务器端关闭 表 2-9 服务器端关闭用例主路径可选路径1、点击“关闭窗口”按钮,弹出对话框,点击“确定” ,退出系统1、点击“关闭窗口”按钮,弹出对话框,点击“取消” ,系统正常工作10、 客户端关闭 表 2-10 客户端关闭用例主路径可选路径1、点击“关闭窗口”按钮,弹出对话框,点击“确定” ,退出系统1、点击“关闭窗口”按钮,弹出对话框,点击“取消” ,系统正常工作局域网聊天室TCPIP

9、 原理及编程课程设计报告52.3 整体框架设计整体框架设计 结合自己的编程经验,设计出的聊天模式如下所示。 图 2-1 聊天模式 如上图所示,服务器与客户端之间采用 TCP/IP 协议通信。服务器提供服务,保存用户列表,并能进行广播通信。服务器持续保持对端口的监听状态,每当有客户端连接服务器时,服务器保存客户端的 IP 和端口。2.4 模块设计模块设计 2.4.1 服务器 服务器端流程图如下。 图 2.2 服务器流程图 开始运行服务器监听端口消息接收连接请求接收数据关闭连接结束服务器客户端客户端局域网聊天室TCPIP 原理及编程课程设计报告62.4.2 客户端 客户端流程图如下。图 2.3 客

10、户端流程图三、系统详细设计三、系统详细设计3.1 服务器服务器 (1)通过 AppWizard 生成基于对话框的应用程序 ChatRooms,在向导的第二步选择 WindowsSockets 的支持,其余步骤均用默认值。 (2)删除原有控件,增加如下控件:控件类型控件类型控件控件 IDID控件类型控件类型控件控件 IDIDGroup boxIDC_STATIC_ALLStatic TextIDC_STATIC_SERVER_PORTGroup boxIDC_STATIC1Static TextIDC_STATIC_local_portGroup boxIDC_STATIC2ButtonIDC_

11、netsetEdit ControlIDC_EDIT_message_recordButtonIDC_send_message开始运行客户端建立连接发送数据关闭连接结束局域网聊天室TCPIP 原理及编程课程设计报告7控件类型控件类型控件控件 ID控件类型控件类型控件控件 IDEdit ControlIDC_input_messageButtonIDC_close_windowsEdit ControlIDC_server_portButtonIDC_lianjie_serverEdit ControlIDC_EDIT4_local_portButtonIDC_exitStatic TextID

12、C_STATIC_setnetButtonIDC_start_serverStatic TextIDC_STATIC_server_ipButton IDC_stopRadio buttonIDC_RADIO1_clientRadio buttonIDC_RADIO1_serverIp Address ControlIDC_IPADDRESS1(3)定义全局变量及函数void DlgAllInit();afx_msg void OnBnClickedRadio1client();afx_msg void OnBnClickedRadio1server();CButton m_radio_cli

13、ent;CButton m_radio_server;CButton m_stop_btn;void ExtendDiaog(BOOL bshow);afx_msg void OnBnClickednetset();BOOL bShowALL;afx_msg void OnBnClickedlianjieserver();SOCKET m_ListenSock;SOCKET m_ConnectSock;afx_msg void OnBnClickedstartserver();HANDLE m_hListenThread;HANDLE m_ConnectThread;CArray m_Clie

14、ntArray;CEdit m_MsgEdit;void ShowMsg(CString strMsg);void CChatRoomsDlg:RemoveClientFromArray(CClientItem in_Item);afx_msg void OnBnClickedsendmessage();void SendClientsMsg(CString strMsg, CClientItem *pNotSend=NULL);int m_bIsServer;int showButton;int showButton1;afx_msg void OnEnChangeinputmessage(

15、);void StopClient();BOOL bShutDown;void StopServer();afx_msg void OnBnClickedexit();afx_msg void OnBnClickedstop();afx_msg void OnBnClickedclosewindows(); (4)系统初始化void CChatRoomsDlg:DlgAllInit()局域网聊天室TCPIP 原理及编程课程设计报告8m_stop_btn.EnableWindow(FALSE);CheckRadioButton(IDC_RADIO1_client,IDC_RADIO1_serve

16、r,IDC_RADIO1_client);SetDlgItemText(IDC_IPADDRESS1,_T(“127.0.0.1“);SetDlgItemText(IDC_server_port,_T(“12580“);SetDlgItemText(IDC_EDIT4_local_port,_T(“12580“);GetDlgItem(IDC_send_message)-EnableWindow(FALSE);GetDlgItem(IDC_stop)-EnableWindow(FALSE);GetDlgItem(IDC_STATIC_local_port)-EnableWindow(FALSE);GetDlgItem(IDC_EDIT4_local_port)-En

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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