聊天系统客户端的设计与实现本科生毕业设计论文(编辑修改稿)内容摘要:
2 用户信息 用户信息自动编号 用户账号 登录密码 验证好友本科生毕业设计(论文) 8 图 23 好友信息 图 24 离线消息 服务器数据库设计 服务器数据库设计的要求是要能够满足客户端的需求,保存用户信 息和用户好友信息,提供离线消息的服务,和发广播消息的服务等。 总共有 三 个表: 用户信息表( Users)好友信息表( Friends)离线消息表( OffMsg) 表 21 用户信息表( Users) 字段名称 说明 长度 UserId(主键) 自动编号 4 字节长整形 Id 用户帐号 4 字节长整形 Photoid 用户的图象编号 4 字节长整形 password 用户登陆的密码 字符串 name 用户的姓名 字符串 sex 用户的性别 单字节整形 0 男 1 女 2 未知 age 用户的年龄 字符串 (为了适应不 愿填写此项的人) canbeadd 能否被人加为好友 单字节整形 (0,1,2 不能被加入 ,允许被任何人加入 ,需要身份验证 ) 自己账号 朋友账号自动编号好友信息离线消息自动编号 接收者账号 发送者账号 接收时间本科生毕业设计(论文) 9 电子信箱 字符串 homepage 个人主页 字符串 address 地址 字符串 phone 电话 字符串 fax 传真 字符串 department 部门 字符串 description 个人简介 字符串 表 22 好友信息表( Friends) 字段名称 说明 长度 Num(主键) 自动编号 4 字节长整形 MyId 自己帐号 4 字节长整形 FriendId 朋友帐号 4 字节长整形 表 23 离线消息表( OffMsg) 字段名称 说明 长度 MsgId(主键) 自动编号 4 字节长整形 RecvId 接受者 帐号 4 字节长整形 SenderId 发送者 帐号 4 字节长整形 RecvTime 接受 时间 4 字节长整形 nIndex 发送消息 类型 4 字节长整形 Msg 发送 消息 备注类型 客户 /服务器程序 设计 C/S 模型也是一种网络模型,但与前述的模型不同,它并不是定义了网络的层次结构,而是描述了一种网络程序运行的方式。 本科生毕业设计(论文) 10 C/S 模型将网络应用程序分为客户和服务器两部分。 客户方对服务器方发送信息请求,服务器方对其做出相应回答,提供服务。 在 TCP/IP 网络应用中,多数网络应用程序是使用 C/S模型设计的。 服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户程序提出了请求信息。 此时,服务程序被 惊醒 并且为客户提供服务,对客户的请求作出适当的反应。 虽然基于连接的服务是设计 C/S 应用程序的标准,但有些服务也是可以通过数据报 Socket 提供的。 通常,网络应用程序包含两个独立的应用程序:客户程 序和服务器程序。 但是,也可以设计同时完成这两种功能的程序,例如,一些服务器程序如果不能完成一个服务请求时,它将转而充当客户程序,向其它服务器程序请求信息。 这方面的一个典型例子就是提供 Inter 从域名到 IP地址映射服务的 DNS 服务器。 为了充分理解 TCP/IP 协议族,必须理解几个重要术语。 这些术语指出了两个 TCP/IP传输协议:用户数据包协议( UDP)和传榆控制协议( TCP)之间的区别。 这些术语进一步描述了与网络连接、协议可靠性以及数据服务有关的协议特性。 当建立服务器程序时,应该将服务器程序设计成等候 客户的请求。 你知道, TCP 传输层通过协议端口和应用程序(像服务器和客户)通信,也就是说,为了按收客户请求,服务器程序必须对传输层的一个特定协议端口进行侦听。 当服务器配置 socket 接口时,它使用 bind()函数让 socket 执行体登记一个协议端口。 也就是说,程序告诉 socket执行体使用哪-个协议端口进行数据传送。 Socket 执行体接着告诉传输层某个特定协议端口已被使用,并将其收到的所有数据传送给 Socket API。 使用无连接协议的程序和使用面向连接协议的服务器程序之间的主要相似之处是它们都必须对一个协 议端口进行侦听。 例如,无连接和连接服务器程序必须在协议端口侦听客户请求。 同样,由于无连接客户程序没有和远地主机建立直接连接,所以它也必须对协议端口进行侦听,以便接收以对它服务请求产生的数据报应答。 Socket API 中的bind()函数让程序将一个本地地址(包括主机地址和协议端口)和一个 Socket 联系起来。 下面程序行显示了一个典型的函数调用: result= bind ( socket_handle, local_structure, socket_address, address_ length) 无连 接客户程序也对一个协议端口进行侦听。 使用无连接协议的程序不和远地主机建立直接连接。 无连接客户程序使用数据报发送网络服务请求,它不建立点到点连接。 因此无连接客户程序必须在一个协议端口,对应答数据报进行侦听。 与服务器程序一样,无连接客户程序也使用 bind 函数让 Socket 执行体登记协议端口。 也就是说,类似服务器程序,无连接客户程序告诉 Socket 执行体使用哪个协议端口进行数据传输。 Socket执行体处理传输层内 UDP 软件模块和客户 程序之间的接口。 本科生毕业设计(论文) 11 图 25 无连接协议的套接字调用 时序图 图 2: 面向 连接的套接字 系统 调用时序图 图 26 面向连接的套接字系统调用时序图 TCP/IP协议 TCP/IP 是国际互联网所采用进行网际互连的通信协议。 实际所称的 TCP/IP 协议包括了在国际互联网络应用的一组协议,互联网协议族是此协议族的另一个名字。 这个协议族包括几种工作在不同层次上的网络协议, IP 互连协议( Inter Protocol),负责本科生毕业设计(论文) 12 主机之间的传输数据。 TCP 传输控制协议( Transmission Control Protocol),负责 在应用程序之间传递数据。 UDP 用户数据报协议( User Datagram Protocol),提供给用户进程的无连接协议,也负责在应用程序之间无连接传递数据,但不执行正确性检查。 ICMP互连网控制报文协议( Inter Control Message Protocol),处理主机间的差错和传送控制。 ARP 地址解析协议( Address Resolution Protocol),负责将网络层地址转换成链路层地址。 RARP 反向地址解析协( Reverse Address Resolution Protocol) ,负责将链路层地址转换成网络层地址。 TCP/IP 协议的核心是传输层协议( TCP、 UDP)、网络层协议( IP)和物理接口层,这三层通常在操作系统的内核中实现。 TCP/IP 网络环境下的应用程序设计是通过网络系统编程界面 Socket 实现的, Socket 提供应用程序与系统内核之间的网络编程接口。 协议可以是可靠的可以是不可靠的。 可靠的协议意味着当数据通过协议传递时,协议保证数据正确传输。 可靠传输包括几个特征。 首先,为了确保数据正确传送,协议在通信应用程序之间互相交换确认信息。 也就是说,程序每次发送-个报文时,都期望 对方发送一个相当于说:“我得到这个报文”的确认信息。 如果发送程序没有收到这样一个确认信息,程序将自动重新发送此报文,直到得到应答信息为止。 其次,为了确保传输的数据有效,可靠协议在每次传输时,都包含一个或更多的校验和( CRC)。 接收计算机重新计算校验和,与收到的校验和进行比较。 如果不匹配,就表明在传输过程中发生了错误。 传输控制协议 TCP是一个使用校验和 确认信息以及其它可靠数据传输技术的可靠协议。 相比之下,不可靠协议不能确保数据正确传输。 协议试图传输数据,但不保证成功。 而且,不可靠协议在传输失败后,并不通知发 送方应用程序。 可将不可靠数据传输比作没有返回地址的信件。 如果发送地址是锗误的,由于邮递系统不能将信退回给你,所以你就不知道信件有没有送到。 即使发送地址是正确的,也不能保证邮递系统不丢失你的信件。 TCP/ IP 协议组中存在的两个基本数据服务是:字节流服务和数据报服务,使用字节流的协议将信息看作一串字节流进行传输。 协议不管要求发送或接收数据的长度和传送数目,只是将数据看作一个简单的字节串流。 使用数据报的协议将信息视作一个独立单元进行传输。 协议单独发送每个数据报 —— 数据报之间不相互依赖。 例如,假设你使用字节流协议 发送 5 个数据段(每个有 10字节)和一个包含 50 字节的数据段(总共 100字节)。 连接的接收方可以按每次 20 字节读数据(要读 5 次)。 传输控制协议是字节流协议。 字节流协议不关心每个数据段的长度。 如果应用程序使用字节流协议发送数据,则协议能够保证连接的另一端按照发送的顺序接收数据。 相比之下,传输到同一目的地的多个数据报可能不会按发送顺序到达。 如果接收方应用程序要求数据顺序一致,应用程序必须在数据到达后,校对这些数据。 用户数据报协议和互连网协议使用数据报传输数据。 数据报类似于信件。 如果你在同一天给同一个人邮寄两封信 ,你无法知道那个人先本科生毕业设计(论文) 13 收到那封信。 同样,如果连续两天给两个人邮信,你也不能知道哪封信先收到。 收到信的顺序和发送顺序可能相反。 在 TCP/IP 术语中,端口类( Port)似于 IP 地址, IP 地址与主机地址是相联系的,端口和协议相联系。 IP 数据报保存目的和源 IP 地址,同样传输协议也保存源和目的端口号。 如果端口这个概念对你来说很陌生,请考虑计算机上的硬件端口。 你可能编写过往硬件端口送数据的程序。 例如为了打印,如果没有其它程序的话,必须向串或并端口发送数据。 PC机给它的端口命名和编号。 例如, PC 机的并行打印端口称为 LPTl 和 LPT2,串行端口称为 COM1 和 COM2。 在Inter 上,网络只是简单地对协议端口编号。 在 PC 机, LPT1 表示并行端口 1。 成千个 PC 机应用程序使用此方案。 多年来,程序员编写 PC 程序时都假定 LPT1 表示并行打印端口 1。 同样,程序员将每个 Inter 协议端口与一个特定的应用程序和功能联系在一起。 Inter 包括像 FTP、 Tel 和 Mail 这样广泛使用的应用程序采用的应用协议,在 Inter 上,这些应用程序使用一种叫做“通用口分配”的端口。 通用口分配是特定应用程序广泛使用的一个协议端 口。 像 PC 程序员使用打印端口 LPT1 用于打印,Inter 程序员也对具体应用程序使用许多协议端口。 例如,平凡文件传输协议( FTP)的通用口分配是端口号 21的。 Tel 的通用口分配是端口号 23。 本科生毕业设计(论文) 14 第 三 章 详细 设计 本章将论述软件系统的面向对象设计过程。 用 Visual C++语言在 Windows 环境下编程实现。 类设计 总体结构 服务器的类总体结构: CServerApp 包含全局的数据结构 CData,CMsg1,CMsg2,CMsg3,CMsg4,CMsgChangePI,CMsgModifyPwd, CMsgOnlineFriend,CMsgPerson,CshowOnlinePeople 处理传输数据 通讯类 CServerSocket, CSendSocket, CRecvSocket 处理底层通讯的类,与外部的接口是 CserverSocket 类,提供了一个简单的接口 4.其它类 CMainFrame,CServerDoc,CServerView,CSetupDlg,CAboutDlg UserInfo 结构存储在线人的信息 客户端的类总体结构 : CClientApp 包含全局的数据结构 CData,CMsg1,CMsg2,CMsg3,CMsg4,CMsgChangePI,CMsgModifyPwd, CMsgOnlineFriend,CMsgPerson,CshowOnlinePeople 处理传输数据 通讯类 CClientSocket 处理底层通讯的类,提供了一个简单的接口 CmainFrame 处理用户界面和一些接受数据的响应 ,主要的处理过程都在这个类里实现。 CfriendDetailDlg 显示用户详细信息的对话框类 本科生毕业设计(论文) 15 CloginDlg。聊天系统客户端的设计与实现本科生毕业设计论文(编辑修改稿)
相关推荐
谈判小组在对响应性文件的有效性、完整性和响应程度进行审查时,可以要求供应商对响应性文件中含义不明确、同类问题表述不一致或者有明显文字和计算错误的内容等作出必要的澄清、说明或者更正。 供应商的澄清、说明或者更正不得超 出响应性文件的范围或者改变响应性文件的实质性内容。 谈判小组要求供应商澄清、说明或者更正响应文件应当以书面形式作出。 供应商的澄清
的 水平位 移 验算 ..................................................................................................... 25 风荷载作用下框架结构内力计算 ....................................................................
......... 38 结束语 ................................................................... 41 参考文献 ................................................................. 43 致 谢 .................................
水平最低的行业,如玩具制造业和制鞋业,今天已经出现了劳动力紧缺。 内陆的居民越来越不愿意为 每月 60 欧元的最低工资离家去沿海地区生产出口货的工厂辛苦工作。 尤其因为那里的生活费很高。 老 年 社区及老年公寓产业投资分析报告 Xxx 12 二、北京 20201101 04:35:00 来源 : 北京晨报 (北京 ) “ 2020年本市 60岁以上的老人就已超过 200 万,根据调查,约 30
川等省市区 65 岁以上的老年人口已超过其总人口的 7%,辽宁、河南、福建等省 65 岁以上的人口接近 7%。 表 31:我国人口年龄构成及发展预测一栏表 中国人口年龄构成及发展预测 (%) 年份 1953 1964 1982 1990 20xx 2020 2040 2050 014 岁 1559 岁 ≥ 60 岁 老年住宅的现状 14 ( 1)老年建筑的现状 据有关部门的调查表明,与目前超过
,全县有中小学、幼儿园 334 所,其中高中 11 所,职中 4 所,初中 66 所,小学 210 所(教学点210 所),幼儿园 42 所,特殊教育学校 1 所。 全县中小学生、幼儿园在校学生 194068人,其中普通高中 22427 人,职业高中3483 人,初中 52601 人,小学 98018 人,入园幼儿 17461 人,特教生 78 人。 现有在职教职工 12035 人,其中专任教师