(完整版)基于Java即时聊天系统的设计与实现毕业论文设计 联系客服

发布时间 : 星期六 文章(完整版)基于Java即时聊天系统的设计与实现毕业论文设计更新完毕开始阅读7850c92c5bcfa1c7aa00b52acfc789eb172d9e23

对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。也就是说,在服务端开启socket服务,客户端每一次连接成功时也都会同时创建一个线程来处理这次连接的请求,而该连接会被保存在一个集合中,直到服务结束,连接关闭,该线程也会结束,同时从连接的集合中移除该连接。 (1)信息发送

用户在每次发送信息时,首先向服务器发送的是自己信息和发送对象信息,然后再通过Socket类向服务器发送信息。当然,在每次输入信息后,输入信息框的内容将会被清空。关键代码如下: public void sendMessage()

{ chatobj.chatUser=strLoginName;

chatobj.chatToUser=String.valueOf(cmbUser.getSelectedItem());

chatobj.whisper=chPrivateChat.isSelected()?true:false;向服务chatobj.chatMessage=txtMessage.getText();

器发送信息

try{ Socket toServer=new Socket(strServerIp,1001);

ObjectOutputStream outObj=new

ObjectOutputStream(toServer.getOutputStream());

}

outObj.writeObject(chatobj);

txtMessage.setText(\ 清空文本框 outObj.close(); }catch(Exception e){ }

其中,方法中的前三句表示系统获取发送信息者的昵称,发送信息内容以及发送对象的昵称;chPrivateChat.isSelected()?true:false这是一个判断语句,表示信息值是否为空,如果isSelected方法有值,那么将true赋给chatobj.whisper,如果为空,则赋false。

在上文中,我们讲到了catch有抛出异常的作用,而try…catch…也是具有相同的功能,try 块块是需要捕获异常的,因为文件有可能不存在,会导致程序崩溃,所以直接捕获,也可以直接throws 出去,让调用该方法的方法去捕获,从而使程序能够正常进行。

此外,函数Socket(strServerIp,1001) 用来创建一个能够进行网络通信的套接字。参数strServerIp为通信协议的协议族,1001则为服务器IP。

而outObj.writeObject(chatobj)的作用则是把调用writeObject方法,将信息发送到服务器。 (2)信息输出

本即时聊天系统的信息输出原理是将所有输入信息通过socket类向服务器发送,然后直接从服务器中突出信息。

关键代码如下: Socket toServer;

toServer=new Socket(strServerIp,1001); Message messobj=new Message(); messobj.username = strLoginName;

ObjectOutputStream streamtoserver=new ObjectOutputStream (toServer.getOutputStream());

streamtoserver.writeObject((Message)messobj); 的信息

收来自服务器

将信息发往服务器

由于上文以对很多方法进行讲解,现主要对ObjectOutputStream进行讲解。ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream。可以使用 ObjectInputStream 读取(重构)对象。通过在流中使用文件可以实现对象的持久存储。如果流是网络套接字流,则可以在另一台主机上或另一个进程中重构对象。也就是说通过ObjectOutputStream 将toServer.getOutputStream()进行重构,从而将服务器接受的信息重构到客户机上,最后通过streamtoserver.writeObject()方法将信息写在客户端上。 5.3 数据库设计

在前文我们已经分析了数据库的实现是采用了hibernate框架中的.XML映射。以下则为实现的关键代码:

-<\ auto-import=\

-

name=\

not-null=\

unique=\

optimistic-lock=\

name=\

not-null=\

unique=\

optimistic-lock=\

name=\

not-null=\

unique=\

optimistic-lock=\

name=\

not-null=\

unique=\

optimistic-lock=\

<\表示调用该框架bean中的数据包;auto-import=\表示hibernate框架中的将映射文件实体;property表示元素定义,name表示字段名;not-null表示是否设置该字段为空;unique表示是否设置该字段为唯一值;optimistic-lock指定此属性做更新操作时是否需要乐观锁定; lazy指定是否采用延迟加载及加载策略,设置为false,表示此关联对象不采用延迟加载。

6 结论

众所周知,互联网从诞生以来,就开始影响着地球的每一个角落,给予了人类一种全新的生活方式,随着互联网技术的不断发展,新兴的技术也层出不穷,即时通信系统就是这么一种以聊天形式为主的广受欢迎的互联网技术。当然,该课题讨论的即时通讯系统是定位于内部局域网,供班级内部人员使用的通讯系统。

即时通信中最基本的功能就是通过计算机之间的文本数据的互换的形式实现思想的交流和沟通,它的优点是方便快捷,为人们之间创建了一种新型的、廉价的、快速的、简便的沟通方式。

首先,本系统完全按照软件工程的瀑布模型进行开发,虽然缺少部分开发文档,但本论文则是按照需求分析,概要设计,详细设计,软件的运行和测试等的结构进行安排的。

其次,本即时聊天系统采用了CS模型。服务器在CS模型中处于一个中心地位。服务器一般同时为多个客户提供服务,这就造成了服务器设计的复杂性。即时通讯服务器是数据中心,它是客户活动的中介,需要同时应对众多客户的请求。

再次,本文并没有采用复杂的SQL,ORICLE等数据库,而是通过hibernate框架对数据进行映射,然后利用*..2000.2.1.