网络聊天室客户端设计
客户端的主要功能是提供聊天服务,该设计是通过在IE浏览器中加载Java小程序实现的,用户输人登录名称登录网络聊天室服务器,登录时向服务器发送登录消息,与Java小程序指定的IP地址和端口的服务器建立连接,登录后便可以通过向服务器端发送和接收普通消息,同所有在线用户进行
?
[收稿日期]2004—06—2l;
[作者简介]白
[收稿日期]2004一09—23
??
雪(1970一),女,硕士,实验师,研究方向:
计算机网络安全。
万方数据
一29—
Experiment
Science&Technology
2005年1月第l期
即时通信。客户端结束通信的方式有两种:第一种是客户端结束浏览器程序(结束Java小程序),同时向服务器端发送退出信息;第二种是接收到服务器端发送的退出程序,自动结束与服务器端的连接(被
踢出网络聊天室)。
每个用户建立一个senre以onn类的实例。然后serverConn类向聊天室客户端发送信息,并且通过实例化userThread类,为用户开启一个线程。线程
类use棚?read为读取聊天室客户端发送的信息,并
且对信息进行检测,根据信息种类的不同,对信息进行不同的处理。
程序1:
publicclass
server
网络聊天室的客户端与服务器端的信息模块图,如图2所示。
客户端
extendsFrameimplementsAc—
tion“stener
{
protectedSenrersocketlistenSocket;
senrelConnnewConn=null:
Vector
users:
publicvoid
waitForClients()
{
socketnewClient=listenSocket.newConn
=new
accept
();
newCli—
sen,e尤onn
(this,
ent);
users.
addElement(newConn);
}
图2网络聊天室的客户端与服务器端的信息模块图
3关键技术及解决方案
系统开发中所涉及的Java关键技术主要为TCP/IP编程技术、Java数据流技术、Java多线程技术、Java界面编程技术等。使用的类主要为:①java.awt,用于聊天室中界面和按钮的设计;②ja.va.net,用于聊天室中的TcP/IP编程;③java.氓主要用于聊天室的数据流的输人和输出;④java.applet,用于聊天室编写中的小程序的使用与调用;(勤ava.1ang,用于对聊天室程序中的多线程的控制;⑥java.util,用于对聊天室中的用户信息的存储与管理。
3.1接口的实现
}
3.3客户端技术在客户端,本文使用的聊天室客户程序的主类是clientApplet,客户程序的起点,主要定义了聊天室客户程序的用户界面,并且建立聊天室客户端到聊天室服务器端的连接(Socket),为连接指定IP地址和端口号,向聊天室服务器端发送登录信息,初始化client类,建立从聊天室客户端到聊天室服务器端的连接。本文利用client类向服务器端发送信息,并实例化线程类clientnread。使用client-Thread类来接收服务器端传送的信息,并且对信息进行不同的响应:如果接收到普通信息,则在聊天室客户端显示信息;如果接收到退出信息,则聊天室关闭线程,结束连接。client类的实现如程序2。程序2:
publicclassclientextends