急需一个用java 语言写的聊天程序

来源:百度知道 编辑:UC知道 时间:2024/07/02 02:21:43
要有如下的要求:
①注册功能:
主要实现申请 “J-QQ”系统账号的功能。在本系统中,要实现即时交流就必须要拥有合法的账号才能进行。一个新的用户在提交自己的一些描述信息的前提下(如:用户的姓名、昵称、性别等信息),由服务器为其分配一个唯一的“J-QQ”账号。
②客户登录功能:
主要实现从客户端登录“J-QQ”系统。其工作过程是:客户在登录时需要给出客户的账号和口令,并将账号和口令送服务端进行身份验证,当验证通过时服务器将该用户的好友信息发回客户端。
③添加好友功能:
主要实现添加好友功能。在本系统中客户只能与好友聊天,所以在与某位用户聊天之前必须先将该好友添加到好友列中。其主要工作过程是:首先输入好友的账号,然后由客户端提交到服务器,再由服务器询问该客户是否同意将他加为好友,当得到许可后就完成了好友的添加。
④删除好友功能:
主要实现从好友列表中删除好友的功能。当你不愿意再与某个好友聊天,可以将该好友从好友列表中删除。其工作过程是:首先选择一个待删除的好友,然后向服务器端提出删除好友的请求,当服务器许可即完成好友的删除操作。
⑤私聊
主要实现好友间单独聊天的功能。其主要过程是:用户首先从好友列表中选择一个好友,然后打开私聊窗口,通过该聊天窗口来实现与好友之间的交流。
⑥群聊
主要实现与所有好友群聊的功能。其主要过程是:首先打群聊窗口,用户输入群聊信息并由客户端转交到服务器中,服务器则根据该用户的好友列表群发到所有好友的客户端。
⑦好友上下线提示
主要实现好友上下线提示,也就是说当好友上线时会自动通知其所有已上线的好友,当其下线时也需要自动通知其所有在线的好友。其主要工作过程如下:当好友上线时,服务器会自动取出当前用户的好友列表,并根据该列表对其好友分别进行通知。当用户下线时就会向服务器传送下线命令,再由服务器将好友下线命令转发给其好友。
⑧用户管理
主要实现用户信息修改的功能。其主要过程是:用户通过客户端程序中的用户信息修改窗口来实现用户个人信息的修改,当信息修改确定后就将该用户的信息传送至服务器,由服务器完成用户信息的更新操作。注意:用户信息一旦修改成功,其在线好友只能重新登录后,才会显示更新后的个人信息。

客户端:
package chatroom;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
public class client extends JFrame implements ActionListener,Runnable{
JPanel conn,text,send;
JLabel name,sendto;
JComboBox list;
JButton con,snd,clear;
JTextArea talk;
JTextField who,say;
JScrollPane jsp;
Socket client;
InputStream is;
OutputStream os;
PrintStream ps;
BufferedReader br;
String receive,yousay;
Thread th;
DataInputStream dis;
Double tof;

client()
{
super("聊天室客户端");
this.setSize(800,600);
this.setResizable(false);
conn=new JPanel();
text=new JPanel();
send=new JPanel();
this.getContentPane().add(conn);
conn.setBounds(0, 0, this.getWidth(),50);
name=new JLabel("姓名:");
who=new JTextField();
con=new JButton(&q