- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计聊天室
课 程 设 计 报 告课程名称:面向对象程序设计C++设计题目: 聊天室____专 业:计算机科学与技术_姓 名: ______学 号: 指导教师:李 晓 虹_______2015 年 12 月 20 日系统需求分析这次开发的局域网聊天工具目标在于在局域网环境下能够简单的实现人与人的即时通讯,要求收发信息速度快、安全性高和精准性高。本软件基于visual studio 2010环境下开发,并采用MFC进行处理,界面具有基本的功能按钮。同时,本软件包含有客户端和服务端,他们之间是基于UDP协议下进行通信的。1.1设计要求:采用C/S模式,分为客户端与服务器端程序1.2功能要求:1.2.1服务器端(1) 服务器聊天程序要在待定的端口上等待来自聊天客户的连接请求,并且需要维护一个客户连接表,以记录所有成功的连接。(2) 服务器聊天程序要及时接受从各个聊天客户发送过来的信息,然后把这些信息转发到一个或多个客户连接。对于公共聊天室,服务器将把接受到的信息向除源端外的所有客户发送过去。(3) 服务器还要监控这些连接的状态,在客户主动离开或发生故障时从列表中删除相应的表项,并及时更新连接表。1.2.1客户端(1) 客户端聊天程序要负责建立和维护与服务器的连接,通过获取用户的设置尝试与服务器的连接,并且随时检测连接的状态。(2) 客户端聊天程序要把用户输入的信息及时发送到聊天服务器。一般情况下,当用户输入一行信息并且按下回车键后聊天程序就要把这一行信息发送出去,才能及时地满足用户的交互需求。(3) 要随时准备好接受来自服务器的信息,随时把接受到的信息显示出来,让用户及时看到对方的响应。(4) 在用户退出聊天过程是要关闭与服务器的连接。总体设计支持多个客户端的连接,在服务器和多个客户端之间进行数据传输;?接收客户端发送的消息,并显示在一个列表框中;?在用户连接上后有提示,显示出连接的用户名字;?发送信息时可以显示聊天的所有记录.服务器服务器连接套接头侦听套接字客户机连接套接头侦听套接字客户机 Socket()Socket()Socket()Socket()Bind()BBind()Bind()Listen()Connect()Listen()Connect()创建连接套接口Accept()创建连接套接口Accept()Send()Receive()Send()Receive()Receive()Receive()Receive()Receive()CloseSocket()CloseSocket()CloseSocket()CloseSocket()CloseSocket()CloseSocket()详细设计3.1数据库代码和表:create table imuser (ImNo char(15) primary key, ImName char(15), ImPhone char(15), ImIp char(15), ImPassword char(15), ImOnline int, ImPort char(10)) create table friend (ImNo1 char(15), ImNo2 char(15), primary key (ImNo1,ImNo2), foreign key(ImNo1) references imuser(Imno), foreign key(ImNo2) references imuser(Imno))create table OfflineMessage (ImNo char(15), ImMsg binary(1536)) create table OffAddfriend (ImNo char(15), ImInfo binary(500)) 表3-1用户表结构表3-2离线用户表结构表3-3请求加为好友用户表结构表3-4用户信息表3.2 C++各模块代码实现:1)始化套接字BOOL CCHATDlg::InitSocket() m_socket=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); if(m_socket==INVALID_SOCKET
文档评论(0)