没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
17页
基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实现.doc 基于JAVA的聊天系统的设计与实
资源推荐
资源详情
资源评论
基于 JAVA 的聊天(ICQ)系统的设计于实现
摘要:随着 JAVA 语言越来越受到程序员的青睐,JAVA 语言有着极其广
阔的发展潜力,本系统是采用 JAVA 语言编写的聊天系统,做为学习
JAVA 语言的上机的一次锻炼。
关键词:JAVA 聊天系统,ICQ 系统,聊天系统。
内容:分析聊天(ICQ)系统,并尝试用 Java 编写。(备注:本系统部分代码来源与
参考文献)
一.序言
ICQ 是英文"I seek you "的简称,中文意思是我找你。ICQ 最大的功能就是即时信息交
流,只要记得对方的号码,上网时可以呼他,无论他在哪里,只要他上网打开 ICQ,人
们就可以随时交流。ICQ 源于以色列特拉维夫的 Mirabils 公司。该公司成立于1996
年7月,也就是在这个时候,互联网上最出名,下载使用人数最多的免费软件 ICQ 诞
生了。可能是其不断增加的用户和广阔的前景以及广泛的应用前景和巨大的市场潜力,
Mirabils 的 ICQ 最终被美国在线 AOL 收购。由于 ICQ 的成功,推动了 ICQ 的本土化,
就中文的 ICQ 而言,现在已经越来越多,比如著名的深圳腾迅公司推出的 OICQ(现在
由于版权问题,已改名为 QQ2001),还有由 TOM.COM 推出的 Tomq 等,这些软件技
术都很好,而且简单易用,成为中国网民最喜欢的通信软件。
但是这些公司都只提供软件的客户端程序免费下载,而不提供其服务器程序,因此对于
未与互联网连接的私有网络,这些软件就用不上了。当然网上也有免费的类似 ICQ 的
服务器提供下载,但是好多都不提供源程序,即使有,其说明也很简单,我很想知道它
是怎么回事,所以我就试着做了。
二.设计
1.为什么选择 JAVA?
Java 是 Sun Microsystem 公司的 James Gosling 开发的编程语言。它以 C++为基础,
但是却是一个全新的软件开发语言。Java 是一个简单,面象对象,分布式,解释性,
强壮,安全,与系统无关,可移植,高性能,多线程和动态的语言-------这是 Sun 给 Java
的定义。
Sun 公司的口号就是"网络就是计算机",Java 能使所有东西从桌面计算平稳的转变为基
于网络的计算,它是专门为此而建立的,并显然是为了完成这个任务而来的。使用
Java,我们可以相对轻松的一天编写一个有条理的网络程序。今天,Java 的网络功能
正在飞跃发展,不断有新的特性增加到这个有价值的基础上,JavaSoft 实验室正在不
断努力使 Java 更加完善。
2.数据库设计
系统可以采用任何一种流行的,Java 支持的数据库,本系统采用了 Microsoft 公司的
SQL Server2000 作为后台数据库。通过对现在流行的一些 Icq 的参考,建立数据库,
名为 javaicq,数据库共建立两个表,一个是用户的基本信息,包括呢称,Jicq 号码等。一
个是用户的好友表,包括用户自己的号码和好友的号码。
(1)用户的基本信息表(表名 icq)
序号 字段名 含义 数据类型 NULL
1 Icqno 用户的号码 int No
2 Nickname 用户的呢称 Char No
3 Password 用户的密码 Char No
4 Status 用户在线否 Bit No
5 Ip 用户的 IP 地址 Char Yes
6 Info 用户的资料 Varchar Yes
7 Pic 用户的头像号 Int Yes
8 Sex 用户性别 Char Yes
9 Email 用户的 email Char Yes
10 Place 用户的籍贯 Char yes
其中 Icqno 字段为自动增加。(其他还可以添加诸如电话号码等字段作为更多选择)
(2)用户的好友表(表名 friend)
序号 字段名 含义 数据类型 NULL
1 Icqno 用户的号码 Int No
2 Friend 好友的号码 Int No
3.系统模式及程序(具体程序参看源程序)
系统采用客户/服务器摸式(如图)
1. 服务器程序:
服务器与客户间通过套接口 Socket(TCP)连接。在 java 中使用套接口相当简单,
Java API 为处理套接口的通信提供了一个类 java.net.Socket.,使得编写网络应
用程序相对容易.服务器采用多线程以满足多用户的请求,通过 JDBC 与后台
数据库连接,并通过创建一个 ServerSocket 对象来监听来自客户的连接请求,
默认端口为 8080,然后无限循环调用 accept()方法接受客户程序的连接
服务器程序代码如下:(部分)
import java.io.*;
import java.net.*;
import java.sql.*;
import java.util.Vector;
class ServerThread extends Thread{//继承线程
private Socket socket;//定义套接口
private BufferedReader in;//定义输入流
private PrintWriter out;//定义输出流
int no;//定义申请的 jicq 号码
public ServerThread(Socket s) throws IOException {//线程构造函数
socket=s;//取得传递参数
in=new BufferedReader(new InputStreamReader(socket.getInputStream()));//创
建输入流
out=new PrintWriter(new BufferedWriter(new
OutputStreamWriter(socket.getOutputStream())),true);//创建输出流
start();//启动线程
}
public void run(){//线程监听函数
try{ while(true){
String str=in.readLine();//取得输入字符串
if(str.equals("end"))break;//如果是结束就关闭连接
else if(str.equals("login")) {//如果是登录
try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//连接数据库
Connection c=DriverManager.getConnection("jdbc:odbc:javaicq"," ","
");
String sql="select nickname,password from icq where icqno=?";
//准备从数据库选择呢称和密码
PreparedStatement prepare=c.prepareCall(sql);//设定数据库查寻条件
String icqno=in.readLine();
int g=Integer.parseInt(icqno);//取得输入的 jicq 号码
System.out.println(icqno);
String passwd=in.readLine().trim();//取得输入的密码
System.out.println(passwd);
prepare.clearParameters();
prepare.setInt(1,g);//设定参数
ResultSet r=prepare.executeQuery();//执行数据库查寻
if(r.next()){//以下比较输入的号码于密码是否相同
String pass=r.getString("password").trim();
System.out.println(pass);
if(passwd.regionMatches(0,pass,0,pass.length()))
{ out.println("ok");
//如果相同就告诉客户 ok
//并且更新数据库用户为在线
//以及注册用户的 ip 地址
//*************register ipaddress
String setip="update icq set ip=? where icqno=?";
PreparedStatement prest=c.prepareCall(setip);
prest.clearParameters();
剩余16页未读,继续阅读
资源评论
- m0_702422832023-09-04资源质量不错,和资源描述一致,内容详细,对我很有用。
悠闲饭团
- 粉丝: 150
- 资源: 3301
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功