基于JAVA的ICQ系统的设计于实现.doc基于JAVA的ICQ系统的设计于实现.doc

收藏 分享

资源预览需要最新版本的Flash Player支持。
您尚未安装或版本过低,建议您

基于JAVA的ICQ系统的设计于实现内容一.序言二.设计三.程序界面四.程序的使用参考资料关于作者何刚HE_GUMCHINARENCOM2001年10月分析ICQ系统,并尝试用JAVA编写。一.序言ICQ是英文ISEEKYOU的简称,中文意思是我找你。ICQ最大的功能就是即时信息交流,只要记得对方的号码,上网时可以呼他,无论他在哪里,只要他上网打开ICQ,人们就可以随时交流。ICQ源于以色列特拉维夫的MIRABILS公司。该公司成立于1996年7月,也就是在这个时候,互联网上最出名,下载使用人数最多的免费软件ICQ诞生了。可能是其不断增加的用户和广阔的前景以及广泛的应用前景和巨大的市场潜力,MIRABILS的ICQ最终被美国在线AOL收购。由于ICQ的成功,推动了ICQ的本土化,就中文的ICQ而言,现在已经越来越多,比如著名的深圳腾迅公司推出的OICQ现在由于版权问题,已改名为QQ2001,还有由TOMCOM推出的TOMQ等,这些软件技术都很好,而且简单易用,成为中国网民最喜欢的通信软件。但是这些公司都只提供软件的客户端程序免费下载,而不提供其服务器程序,因此对于未与互联网连接的私有网络,这些软件就用不上了。当然网上也有免费的类似ICQ的服务器提供下载,但是好多都不提供源程序,即使有,其说明也很简单,我很想知道它是怎么回事,所以我就试着做了。二.设计1.为什么选择JAVAJAVA是SUNMICROSYSTEM公司的JAMESGOSLING开发的编程语言。它以C为基础,但是却是一个全新的软件开发语言。JAVA是一个简单,面象对象,分布式,解释性,强壮,安全,与系统无关,可移植,高性能,多线程和动态的语言这是SUN给JAVA的定义。SUN公司的口号就是网络就是计算机,JAVA能使所有东西从桌面计算平稳的转变为基于网络的计算,它是专门为此而建立的,并显然是为了完成这个任务而来的。使用JAVA,我们可以相对轻松的一天编写一个有条理的网络程序。今天,JAVA的网络功能正在飞跃发展,不断有新的特性增加到这个有价值的基础上,JAVASOFT实验室正在不断努力使JAVA更加完善。2.数据库设计系统可以采用任何一种流行的,JAVA支持的数据库,本系统采用了MICROSOFT公司的SQLSERVER2000作为后台数据库。通过对现在流行的一些ICQ的参考,建立数据库,名为JAVAICQ,数据库共建立两个表,一个是用户的基本信息,包括呢称,JICQ号码等。一个是用户的好友表,包括用户自己的号码和好友的号码。1用户的基本信息表表名ICQ序号字段名含义数据类型NULL1ICQNO用户的号码INTNO2NICKNAME用户的呢称CHARNO3PASSWORD用户的密码CHARNO4STATUS用户在线否BITNO5IP用户的IP地址CHARYES6INFO用户的资料VARCHARYES7PIC用户的头像号INTYES8SEX用户性别CHARYES9EMAIL用户的EMAILCHARYES10PLACE用户的籍贯CHARYES其中ICQNO字段为自动增加。(其他还可以添加诸如电话号码等字段作为更多选择)(2)用户的好友表(表名FRIEND)序号字段名含义数据类型NULL1ICQNO用户的号码INTNO2FRIEND好友的号码INTNO3.系统模式及程序具体程序参看源程序系统采用客户/服务器摸式如图1服务器程序服务器与客户间通过套接口SOCKETTCP连接。在JAVA中使用套接口相当简单,JAVAAPI为处理套接口的通信提供了一个类JAVANETSOCKET,使得编写网络应用程序相对容易.服务器采用多线程以满足多用户的请求,通过JDBC与后台数据库连接,并通过创建一个SERVERSOCKET对象来监听来自客户的连接请求,默认端口为8080,然后无限循环调用ACCEPT方法接受客户程序的连接服务器程序代码如下部分IMPORTJAVAIO;IMPORTJAVANET;IMPORTJAVASQL;IMPORTJAVAUTILVECTOR;CLASSSERVERTHREADEXTENDSTHREAD{//继承线程PRIVATESOCKETSOCKET;//定义套接口PRIVATEBUFFEREDREADERIN;//定义输入流PRIVATEPRINTWRITEROUT;//定义输出流INTNO;//定义申请的JICQ号码PUBLICSERVERTHREADSOCKETSTHROWSIOEXCEPTION{//线程构造函数SOCKETS;//取得传递参数INNEWBUFFEREDREADERNEWINPUTSTREAMREADERSOCKETGETINPUTSTREAM;//创建输入流OUTNEWPRINTWRITERNEWBUFFEREDWRITERNEWOUTPUTSTREAMWRITERSOCKETGETOUTPUTSTREAM,TRUE;//创建输出流START;//启动线程}PUBLICVOIDRUN{//线程监听函数TRY{WHILETRUE{STRINGSTRINREADLINE;//取得输入字符串IFSTREQUALSENDBREAK;//如果是结束就关闭连接ELSEIFSTREQUALSLOGIN{//如果是登录TRY{CLASSFORNAMESUNJDBCODBCJDBCODBCDRIVER;//连接数据库CONNECTIONCDRIVERMANAGERGETCONNECTIONJDBCODBCJAVAICQ,,;STRINGSQLSELECTNICKNAME,PASSWORDFROMICQWHEREICQNO;//准备从数据库选择呢称和密码PREPAREDSTATEMENTPREPARECPREPARECALLSQL;//设定数据库查寻条件STRINGICQNOINREADLINE;INTGINTEGERPARSEINTICQNO;//取得输入的JICQ号码SYSTEMOUTPRINTLNICQNO;STRINGPASSWDINREADLINETRIM;//取得输入的密码SYSTEMOUTPRINTLNPASSWD;PREPARECLEARPARAMETERS;PREPARESETINT1,G;//设定参数RESULTSETRPREPAREEXECUTEQUERY;//执行数据库查寻IFRNEXT{//以下比较输入的号码于密码是否相同STRINGPASSRGETSTRINGPASSWORDTRIM;SYSTEMOUTPRINTLNPASS;IFPASSWDREGIONMATCHES0,PASS,0,PASSLENGTH{OUTPRINTLNOK;//如果相同就告诉客户OK//并且更新数据库用户为在线//以及注册用户的IP地址//REGISTERIPADDRESSSTRINGSETIPUPDATEICQSETIPWHEREICQNO;PREPAREDSTATEMENTPRESTCPREPARECALLSETIP;PRESTCLEARPARAMETERS;
编号:201311181527531172    类型:共享资源    大小:174.00KB    格式:DOC    上传时间:2013-11-18
  
5
关 键 词:
专业文献 学术论文 精品文档 基于JAVA
  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:基于JAVA的ICQ系统的设计于实现.doc
链接地址:http://www.renrendoc.com/p-101172.html

当前资源信息

4.0
 
(2人评价)
浏览:17次
网游小王子上传于2013-11-18

官方联系方式

客服手机:17625900360   
2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   

精品推荐

相关阅读

人人文库
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

网站客服QQ:2846424093    人人文库上传用户QQ群:460291265   

[email protected] 2016-2018  renrendoc.com 网站版权所有   南天在线技术支持

经营许可证编号:苏ICP备12009002号-5