ICQ系统软件体系结构大作业.docx

上传人:b****7 文档编号:10791281 上传时间:2023-02-22 格式:DOCX 页数:22 大小:267.92KB
下载 相关 举报
ICQ系统软件体系结构大作业.docx_第1页
第1页 / 共22页
ICQ系统软件体系结构大作业.docx_第2页
第2页 / 共22页
ICQ系统软件体系结构大作业.docx_第3页
第3页 / 共22页
ICQ系统软件体系结构大作业.docx_第4页
第4页 / 共22页
ICQ系统软件体系结构大作业.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

ICQ系统软件体系结构大作业.docx

《ICQ系统软件体系结构大作业.docx》由会员分享,可在线阅读,更多相关《ICQ系统软件体系结构大作业.docx(22页珍藏版)》请在冰豆网上搜索。

ICQ系统软件体系结构大作业.docx

ICQ系统软件体系结构大作业

一、引言

 

1.1ICQ基本简介

随着Internet的快速普及,人与人之间的信息交流和沟通已经显得异常重要,以快速、交互、简便为代表的即时通讯工具,已经成为当前网络用户最喜爱的网络沟通工具。

聊天软件作为当今使用最为广泛的即时性通信工具之一,给互联网上的用户提供了诸多的服务,如文字聊天、文件传输、语音聊天、视频聊天等功能。

而ICQ软件系统正是这样一款提供实时信息传达的通讯软件,为广大网络上的人员提供了通讯的便利。

1996年,三个以色列人维斯格、瓦迪和高德芬格聚在一起,决定开发一种使人与人在互联网上能够快速直接交流的软件。

他们为新软件取名ICQ,即“ISEEKYOU(我找你)”的意思。

ICQ支持在Internet上聊天、发送消息、传递文件等功能。

他们成立了Mirabilis公司,向注册用户提供互联网即时通讯(InstantMessenger,IM)服务。

ICQ通讯软件提供了大量的功能,你可以查看、查找和打印消息历史,设置随机聊天,使用多种方式查找并添加别的用户,获得更详细的用户信息,接收你朋友的生日并把你自己的生日提前通知大家,创建你自己的ICQ主页,当你在线的时候别人就可以访问你的主页,利用贺卡、语音邮件等ICQ插件发送贺卡和语音邮件,利用ICQEmail发送、转寄和复制电子邮件,使用你喜欢的字体、字号和颜色发送消息,为不同的事件选择声音以及配置打字的声音效果,把你的名单分成不同的组,让ICQ提醒你将来的事件和活动,利用记事功能把你的备忘录或记事贴到屏幕上,通过ICQ进行网页搜索,进行实时聊天并且可以回放保存的聊天内容,可以在聊天中插入动作和表情,等等。

1.2分析研究的意义

利用软件体系结构的思想去分析一个大型的系统是一种非常科学和有效率的方法,从中可以全面透彻的了解到该通讯系统的工作机制,并可在原有的系统工作原理基础下优化和改进,为广大的用户提供更加优质和稳定可靠的服务。

如今的21世纪是信息的时代,随着互联网技术的发展,信息在传递方面也有了崭新的一面。

现今聊天软件成为信息传递最为广泛的应工具,它发挥了即时性通信的特点,可以让用户在第一时间内得到信息的交流,它不仅可以让用户进行文字聊天,而且还增添语音、视频功能。

这样可以让网上的好友身临其境的面对面的聊天,让彼此之间更为深入的了解。

人性化的设计让每个用户都可以得心应手的使用,从而获得更多人的青睐。

Internet的出现连通了整个世界,而聊天软件的出现则连通了每一位网上的用户。

随着网络应用的发展,聊天软件已经成为最热门的网络应用之一。

经历了近几年突飞猛进的发展之后,即时通讯工具早已不再是简单的互联网通讯工具,它已经成为一个集互动交流、休闲娱乐、信息管理为一体的多元化互联网应用平台。

总之,聊天软件的出现给人们彼此之间的沟通带来了无比的方便,人们可以通过聊天软件建立深刻的友情,让人们在互联网上的交流更加充满活力与生机。

1.3任务分工

卢辰

卢煜:

在本次体系结构分析中,对客户端信息处理子模块以及服务器与数据库连接模块JDBC进行了分析,找出其构件连接件。

王懿妮:

完成了ICQ系统原理分析和数据库信息管理模块的描述

二、ICQ系统原理简述

2.1系统概述

ICQ系统是一款结合网络通讯标准和后台数据库的处理方式实现客户端和服务器端以及客户端与客户端信息的交互,大体的系统设计包括了ICQ服务器端的信息处理功能模块,ICQ客户端的信息处理功能模块,服务器的后台数据库对客户信息的管理模块,以及通讯过程中的标准协议(包含基于TCP的服务器与客户端Socket技术和基于UDP的客户端之间的Socket通讯技术)。

2.2ICQ系统架构图

2.3总体系结构流程图

2.4系统各功能模块

2.4.1服务器端信息处理模块

该模块是服务器端的核心模块,管理一切信息的处理和存储,以及制定服务器端服务提供的功能类型,并协调后台数据库对数据的管理和信息传输管理。

2.4.2数据库端信息管理模块

该模块主要实时的根据服务器端控制中心对数据的数据库操作而工作,提供对用户数据和系统日志数据的存储,实时互斥地对共享数据的数据库访问。

2.4.3实时信息通讯传输模块

该模块力侧于管理和处理数据在网络上的传输,以及对数据的安全性和信息服务质量的功能服务,对服务器与客户端的传输数据加以管理。

2.4.4客户端的信息处理模块

该模块提供给用户一个友好操作界面,并带有网络通讯功能和好友管理功能,随附有实时更新的WebService功能,用户可以在该模块基础上实现多样的用户级操作。

三.各功能模块描述

3.1服务器端信息处理模块

3.1.1功能描述:

服务器端模块主要采用多线程的方式利用Socket通讯实时监听用户的请求信号和相关的业务处理,并且为每一个登陆的用户提供一个暂存信息区域,由相对应的请求业务服务子模块提供给用户服务,在对传输的信息资源进行处理时调用信息处理子模块并将结果返回至用户或者是后台数据库,实现同步的更新处理。

3.1.2功能模块总体系结构:

3.1.3各子模块描述:

●业务服务子模块

简述:

用户群体的需求各异,因此也需要提供各式各样的服务给用户进行选择,该子模块在此基础上提供给了广大用户各样的服务,如视频服务,会话通讯服务,文件传输服务,网络存储服务等

视频服务:

流媒体技术的逐渐成熟、IP网传输带宽的不断提高,NGN和3G以至4G网络、IPTV网络、下一代互联网的快速演进,使得IPTV等基于网络视频的增值应用被不断推出,因此该视频服务为在线的各需求用户无论家居、交通、旅游、安全等领域都提供了网络点对点的视频会话,使得用户能够方便快捷的通过网络视频进行犹如面对面的沟通。

会话通讯服务:

该服务能够将分散在世界各个角落的人们通过网络聚集在一个虚拟的网络会话通讯区域内,使得大家能够宛如在真实的会议室里进行项目工作的商议,节省了宝贵的时间和资源。

文件传输服务:

该服务能够提供给用户一个远程的网络文件的安全传输,使得用户无论在何时何地都可以通过网络文件传输服务将需要传达的文件信息传输到目的地。

网络存储服务:

该服务为广大的为无地存放网络资源的用户提供了便捷,利用网络存储服务可以将本地或网络上的文件存储在系统服务器内的存储区域内,而不受区域的限制对其进行管理。

●信息处理子模块

简述:

此信息处理模块实则为服务器端管理模块的核心子模块。

该模块主要针对服务器控制中心所传输的数据(包括用户数据和系统数据)进行相应的处理,所有的大容量数据均在此模块进行统一的处理,然后按照服务器控制中心要求系统地将结果返回。

●同步更新子模块

该模块主要是将已经确认完毕的用户数据或系统日志数据回传给系统数据库模块中,实现实时的更新,同时屏蔽用户直接访问数据库,增强了系统的安全性。

以此同时,同步更新子模块还实现了共享数据的互斥访问,使得在系统更新数据库的同时,用户不能访问相关的更新数据,增加了系统的容错性和扩展性。

3.1.4构件,连接件,约束:

在该服务器端信息处理模块中,相关构件,连接件,约束分析如下:

构件:

业务服务子模块,信息处理子模块,同步更新子模块

分析:

这三个子模块各自封装了其自身的功能,为系统提供着不同的服务,各自之间相互独立的完成。

连接件:

服务器控制中心

分析:

以上三个各自独立的功能模块构件是需要在该服务器控制中心的引导和控制下将各自的服务提供给用户,起到了桥梁的作用,使之能够相互关联作用。

约束:

用户请求

分析:

如果用户的请求为非法或未符合条件请求,系统将不予以执行,转入异常错误处理,所以会改变系统流程指向,故为约束。

3.2数据库信息管理模块

3.2.1功能描述:

服务器端信息管理模块主要用于管理和存储ICQ系统在网络通信过程中,用户间交互,用户与服务器间的交互,身份的验证和识别所产生大量数据,如用户个人信息,用户间好友信息,系统消息等。

服务器通过JDBC(JavaDataBaseConnectivity,java数据库连接)与后台数据库连接。

客户端信息处理模块不直接与服务器端后台数据库进行交互,而是将信息传递给服务器端信息处理模块,再由服务器端信息处理模块进行数据访问及合法性校验等工作,与数据库进行各种交互。

3.2.2功能模块总体系结构:

3.2.3主要子模块描述:

●ICQ用户信息表:

该表主要包含用户ICQ账号,用户昵称,用户登录密码,用户在线状态,用户登录IP地址,用户个性签名信息,用户头像信息,用户性别,用户电子邮件,用户级别,最后登录时间和在线时间。

该表主要用于用户登录,个人信息反馈,级别评定等。

●ICQ用户关系表:

该表主要包含用户ICQ账号,好友ICQ账号,与好友聊天记录,加为好友的时间,与好友聊天时间长度,好友所在分组。

该表主要用于建立用户间的好友关系及存储相关双方聊天记录。

●ICQ临时消息表:

主要字段包括:

消息接收者ICQ账号,消息,消息发送者ICQ号码,消息发送者昵称。

用于存放用户不在线时好友所发信息。

●实体关系模型:

ICQ用户信息实体:

主键:

用户ICQ账号

属性:

用户昵称,用户登录密码,用户在线状态,用户登录IP地址,用户个性签名信息,用户头像信息,用户性别,用户电子邮件,用户级别,最后登录时间和在线时间

实体模型如下:

ICQ用户关系实体:

主键:

用户ICQ账号

外键:

好友ICQ账号

属性:

与好友聊天记录,加为好友的时间,与好友聊天时间长度,好友所分组

实体模型如下:

 

ICQ临时消息实体:

外键:

消息接收者ICQ账号

属性:

消息,消息发送者ICQ号码,消息发送者昵称

实体模型如下:

数据库信息管理模块实体关系模型(ER图):

每个用户对应多条好友记录,每条好友记录对应一位好友。

每位用户对应多条临时消息记录。

3.2.4构件,连接件,约束:

在该服务器端信息处理模块中,相关构件,连接件,约束分析如下:

构件:

ICQ用户信息表;ICQ用户关系表;ICQ临时消息表;

分析:

为减小数据冗余,各表间相互独立,存储各自模块所管理的信息,

连接件:

实体关系,主键,外键

分析:

各模块间存在实体关系(如:

每个用户对应多条好友记录,每条好友记录对应一位好友),构件通过自己的外键连接到另一构件的主键,进行数据的增加,删除,查询修改操作。

约束:

数据库自身约束

分析:

a)各构件中主键不可重复,如添加的数据项与原有数据项主键相同,则不予操作。

b)数据项非空,在建立数据库之初,即可要求构件中部分数据项非空(notnull);如密码属性就不能为空,如对此类属性赋予空值,则不予操作。

3.3实时信息通讯模块

3.3.1功能描述:

本实时信息通讯模块主要采用Socket(基于TCP协议)进行客户端与服务器端的信息通讯与数据传输,而采用Socket(基于UDP协议)进行客户端之间的无连接信息通讯与数据传输。

最重要的是,socket(基于TCP协议)是面向客户/服务器模型而设计的,是一种安全,稳定面向连接的传输,从而保证了数据在服务器与客户端之间的传输安全性和稳定性。

在其中还结合了数据安全和服务质量的模块,这样能够充分地对数据的安全性做到保障,并为传输的数据提供用户所需的服务质量,加强数据特性,达到用户的需求:

3.3.2功能模块总体系结构:

3.3.3各子模块描述:

●信息传输子模块

简述:

该模块包括了对服务器/客户端模式之间的TCP数据传输和对客户端/客户端之间的UDP数据传输。

在服务器/客户端模式中,服务器使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。

客户端,使用Javasocket通信对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。

客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。

在客户端/客户端模式中,系统采用基于UDP的通讯方式,基本原理同上,不同在于这里没有服务器的概念,用户可以自由指定通讯的对象(当知道通讯对象的InetAddress前提下),但该协议的通讯时无连接的,无序的,快速但不安全和稳定。

功能意义:

信息传输子模块主要是提供对用户数据的传输控制作用,负责将用户的请求信息附加安全处理和服务质量之后进行目的地的传送,是所有数据处理后传输的必要模块也是实时通讯模块的核心。

●数据安全子模块

简述:

在网络的世界里,任何的数据都是出于非安全的环境下,尤其是在远距离的数据传输过程中,传输给服务器的数据很可能就会被人恶意窃取,篡改,这样不仅对客户造成隐私的泄露,同时对服务器的创伤也是非常的大,严重的影响整个系统的运作。

所以,为了提高数据的安全性,该子模块力侧于注重数据机密性,完整性,可用性的原则进行了大量的数据保护措施,其中就包括数据的身份验证,数据的加密等措施来确保数据的真实有效性。

数据传输加密技术目的是对传输中的数据流加密,以防止通信线路上的窃听、泄漏、篡改和破坏。

数据传输的完整性通常通过数字签名的方式来实现,即数据的发送方在发送数据的同时利用单向的不可逆加密算法Hash函数或者其它信息文摘算法计算出所传输数据的消息文摘,并把该消息文摘作为数字签名随数据一同发送。

接收方在收到数据的同时也收到该数据的数字签名,接收方使用相同的算法计算出接收到的数据的数字签名,并把该数字签名和接收到的数字签名进行比较,若二者相同,则说明数据在传输过程中未被修改,数据完整性得到了保证。

数据验证:

身份认证要求参与安全通信的双方在进行安全通信前,必须互相鉴别对方的身份。

保护数据不仅仅是要让数据正确、长久地存在,更重要的是,要让不该看到数据的人看不到。

这方面,就必须依靠身份认证技术来给数据加上一把锁。

数据存在的价值就是需要被合理访问,所以,建立信息安全体系的目的应该是保证系统中的数据只能被有权限的人访问,XX的人则无法访问到数据。

如果没有有效的身份认证手段,访问者的身份就很容易被伪造,使得XX的人仿冒有权限人的身份,这样,任何安全防范体系就都形同虚设,所有安全投入就被无情地浪费了。

数据加密:

数据加密技术是最基本的安全技术,被誉为信息安全的核心,最初主要用于保证数据在存储和传输过程中的保密性。

它通过变换和置换等各种方法会被保护信息置换成密文,然后再进行信息的存储或传输,即使加密信息在存储或者传输过程为非授权人员所获得,也可以保证这些信息不为其认知,从而达到保护信息的目的。

该方法的保密性直接取决于所采用的密码算法和密钥长度。

根据密钥类型不同可以把现代密码技术分为两类:

对称(私钥密码体系)和非对称加密算法(公钥密码体系)。

数据进行加密后进行传输的过程中,一旦数据被截获,对方也无法进行有效的破解,所以截获的数据将对其毫无用处,这样传达到服务器端的数据将确保安全性,对其进行解密后就可以使用,大大增强了系统在数据传输过程中的安全性能。

●服务质量子模块

简述:

QoS的英文全称为"QualityofService",中文名为"服务质量"。

QoS是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。

在正常情况下,如果网络只用于特定的无时间限制的应用系统,并不需要QoS,比如Web应用,或E-mail设置等。

但是对关键应用和多媒体应用就十分必要。

当网络过载或拥塞时,QoS能确保重要业务量不受延迟或丢弃,同时保证网络的高效运行,对于网络业务,服务质量包括传输的带宽、传送的时延、数据的丢包率等。

在网络中可以通过保证传输的带宽、降低传送的时延、降低数据的丢包率以及时延抖动等措施来提高服务质量。

网络资源总是有限的,只要存在抢夺网络资源的情况,就会出现服务质量的要求。

服务质量是相对网络业务而言的,在保证某类业务的服务质量的同时,可能就是在损害其它业务的服务质量。

例如,在网络总带宽固定的情况下,如果某类业务占用的带宽越多,那么其他业务能使用的带宽就越少,可能会影响其他业务的使用。

因此,网络管理者需要根据各种业务的特点来对网络资源进行合理的规划和分配,从而使网络资源得到高效利用。

功能意义:

该服务质量子模块能够有效的自动根据用户的需求选择不同的服务质量进行数据的快捷传输,以避免了数据因网络拥塞等原因而造成数据错误或数据丢失对系统造成的损伤,这样一来,增强了数据的传输效率。

3.3.4构件,连接件,约束:

构件:

信息传输子模块,数据安全子模块,服务质量子模块

连接件:

信息传输子模块,这里的信息传输子模块既是构件又是连接件,因为信息传输模块既可以单独作为一个具有信息传输功能的单元,又可以作为连接数据安全子模块,服务质量子模块的中间模块,使得数据经过这两个模块处理后又将由此信息传输子模块进行数据的最终传输。

约束:

这里的约束即指构件与连接件之间的关系,此模块中,信息数据的有效性是约束,因为只有有效的数据才能够进行模块功能的处理。

3.4客户端信息处理模块

3.4.1功能描述:

客户端模块主要采用Socket建立与服务器的连接,服务器与客户端建立输入输出流,然后通过该输入输出流来相互传递信息,服务器端一旦收到客户端的连接请求,服务器端就通过accept()方法返回一个新建的Socket对象,客户端然后向服务器端发送消息,例如注册,登录,查找好友等。

服务器端收到来自客户端的请求后,针对不同的消息来处理客户端的请求,尽管UDP是不可靠的通信协议,而ICQ这类通讯系统对可靠性要求并不高,而且UDP速度快,所以客户端通信是使用UDP进行的。

用户登录时建立UDP,其中包括本地接收端口和发送端口,通过从服务器获得的好友IP地址,向好友发送消息和接受消息。

好友通过UDP接到消息后,获得发送方的IP地址,通过对好友列表进行比对,用以判断客户信息并提示用户收到好友发送来的消息。

然后,用户选择该好友查看信息。

3.4.2功能模块总体系结构:

3.4.3各子模块描述:

●用户登录:

用户要进入系统,首先要登录系统,用户输入ICQ号码和登录密码后,客户端建立以服务器端的连接,发送登录相关信息到服务器端,服务器端收到登录请求后,通过JDBC-ODBC读取数据库中的用户信息,然后与用户输入的信息进行不对,如果验证正确,就像客户返回成功登陆的消息,并把数据库中“登录状态”一项设为1,表示用户在线,并更新其在数据库中的IP地址,否则返回错误。

如果用户收到登陆成功的信息就打开主窗口,进入用户界面。

否则提示相应错误。

成功打开客户端程序主窗口的同时开始创建UDP,以便在用户间建立通讯通道。

客户端向服务器端发送请求读取好友名单,服务器收到该请求后,开始读取数据库中的“ICQ好友信息表”,从中得到好友ICQ号码后,再通过好友的ICQ号码到“ICQ用户信息表”中读取好友资料,然后向客户端发送这些信息,客户端收到后就打开主窗口显示好友,比如头像,昵称等。

并在客户端存储好友的昵称,ICQ号码,头像,IP地址等信息,以便使用和通信。

●用户注册:

用户在使用ICQ系统之前,首先要申请一个账号,申请好账号后,服务器端会返回给申请者一个ICQ号码,用户用服务器返回的ICQ号码登录系统,当服务器受到用户的注册请求后,便开始接受客户发来的注册信息,例如客户的昵称,性别,所属地,头像,个人签名等。

当服务器读入数据结束后,便开始通过JDBC-ODBC与后台数据库连接,然后向数据库添加记录,如果成功,便向申请注册的用户返回一个ICQ主程序窗口,并在数据库中注册用户现在的IP地址,然后更新数据库中的登录状态为在线。

表示用户在线。

客户端收到服务器返回的成功信息后,边建立UDP,以便用于以后的通信连接。

●查找添加好友:

当用户登录成功进入客户端后可以进行添加好友,可单击“查找”按钮来查找当前在线好友信息,当用户单击“查找”按钮后,客户端开始向服务器发出查找请求,服务器读取ICQ用户信息表后,向客户端返回查询结果,客户端在主窗口中显示在线好友。

当用户选择了一个网友后并单击“加为好友”按钮后,客户端向服务器端发出添加好友请求,服务器收到请求后,项数据库中“ICQ好友信息表”添加新的好友ICQ号码及相关信息,并从数据库的“ICQ用户信息表”中返回好友的个人信息显示给用户。

同时通过UDP通知被加为好友的用户,等对方收到确认消息后,可以选择是否同意成为对方好友。

●发送聊天信息:

用户在程序主窗口内双击好友后,系统会自动弹出发送信息界面,并自动提取对方的用户昵称和ICQ号码。

用户在发送信息窗口内输入所要发送的信息后,单击“发送”按钮,系统会自动建立UDP数据报连接并发送消息给目标好友。

●接收聊天信息:

当系统收到好友发送的消息后,会自动弹出提示窗口,单击“确定”按钮,系统会自动弹出聊天界面(同消息发送界面),供用户交互使用。

●查看好友详细信息:

用户可以查看某一好友的详细的个人信息,选择好友,鼠标右键打开选项菜单,单击“查看资料”按钮后,客户端把所要查看的好友的ICQ号码发给服务器,服务器通过JDBC连接数据库,在数据库中的“ICQ用户信息表”中查找用户详细信息后,通过服务器返回给客户端程序。

客户端收到反馈后,弹出窗口显示好友详细信息。

●删除好友:

用户可以删除列表中某一好友,选择目标好友,鼠标右键打开选项菜单,单击“删除好友”按钮后,客户端发送所要删除的好友的用户ICQ号码大服务器,服务器收到删除信息后通过JDBC连接数据库,在数据库中的“ICQ好友信息表”中找到目标记录,执行删除操作,删除相应记录。

●WebService:

在客户端程序主窗口中,可以集成各种WebService,当用户在客户端登陆成功时,向服务器发送WebService请求信息,服务器收到请求后,验证该用户是否有使用WebService使用权限,有责返回相应WebService,客户端收到回复后,将其显示在程序主窗口内相应位置供用户使用。

3.4.4构件,连接件,约束:

在该客户端信息处理模块中,相关构件,连接件,约束分析如下:

构件:

用户登录子模块;用户注册子模块;查找添加好友子模块;

发送聊天信息子模块;接收聊天信息子模块;查看好友详细信息子模块;删除好友子模块;WebService子模块;

分析:

各模块独立工作,各自执行各自功能,均单独建立与服务器的连接,过程上虽存在先后关系,但功能上互不干涉,综合起来构成完整客户端信息处理模块。

连接件:

客户端主程序。

分析:

所有构件均运行于客户端主程序之上,各模块各自执行完各自功能后,将处理结果返回给客户端主程序,再由客户端主程序选择下一步操作。

约束:

分析:

所有构件均运行于客户端主程序之上,并将结果返回给主程序,以便主程序选择下一步执行方向。

四总结

4.1系统分析评解

该ICQ通讯系统架构在客户端的功能主要还是依赖于服务器的服务提供,并未完全的从中独立出来,这对于大量的用户服务请求时,服务器必然会造成负载,但优点是能够随时根据服务器的要求进行服务升级和改造及监控。

且系统采用的是C/S模型,虽然在用户功能服务的使用上更加稳定,更加安全,但是这样的模型会使得用户不方便时刻去下载一个桌面运用程序,建议能够开发成web类型的B/S模型将更加完美。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1