摘要:本文具体介绍一个AWT版本的java聊天软件的开发过程,并着重分析如何用AWT组件实现软件的个性化界面。
简介
本Java聊天软件,纯粹基于AWT组件,没有使用任何Swing组件。在本程序中,我开发了自己的Tab控件和图像画布并给出完整的源码分析。软件实现界面见下图:
软件特点
1)用本文传递笑脸图片
2)私人聊天功能
3)基于定制颜色的良好界面
4)音频功能
描述
在软件中,实现了服务器端模块与客户端模块。在服务器端,我定义了自己的RFC命令。在该应用程序中用到的命令有:
HELO - 初始化到服务器的连接
QUIT - 用户退出聊天室
KICK - 禁止参预聊天
CHRO - 更换聊天室
MESS - 发送普通信息
PRIV - 发送私人信息
ROCO - 取得指定聊天室的聊天人数
CALL - 邀请语音聊天(本文示例中没有包括)
服务器端模块设计
在本模块中,我想解释以下几点:
·建立一个定制的UserObject类,该类包含了如用户名,用户套接字,聊天室名称等等具体的客户端信息。
·当服务器端运行时,它在端口1436(当然我们也可以修改)开通服务器端套接字,听候客户端的连接。假如客户连接上服务器,它将开通一个独立的服务线程。这样,当客户发送"QUIT"命令时,它就会关掉该线程。详见源文件ChatCommunication.java中的细节编程。
下面的示例代码实现了从聊天室客户端获取连接并创建一个新的ChatCommunication对象的功能。在类ChatCommunication中,我们将创建一个专门线程来负责监守来自客户端的所有命令并作出相应的回答。
//ChatServer.java
…………
while(true)
{
Socket socket = serversocket.accept();
ChatCommunication chat = new ChatCommunication(socket);
}
.........
//ChatCommunication.java
..........
ChatCommuncation(Socket socket)
{
personalsocket = sokcet;
dout = new Dataoutputstream(personalsocket.getoutoutstream());
.....
}
客户端模块设计