import java.DatagramPacket;
import java.io.Serializable;
import java.InetAddress;
public class QDatagramPacket implements Serializable
{
    //定义操作的类型,type用于传递时,识别操作类型
    //各种操作定义为类属性,在网络环境下传递
    private int type;
    public DatagramPacket dPacket=null;  //由于数据报包类不能被继承,所以定义一个数据报包类的引用
    //public static final int MESSAGESHOW_PIC_PERSONAL = 1;
  // public static final int MESSAGESHOW_PHOTO = 2;
    public static final int MESSAGESHOW_WORD_PERSONAL = 3;    //私人聊天操作
    public static final int MESSAGESHOW_WORD_GROUP = 4;        //里聊天操作
  // public static final int MESSAGESHOW_PIC_GROUP = 5;
    //public static final int DATABASEHANDLE_FIND = 11;
    //public static final int DATABASEHANDLE_DEAL = 12;
    //public static final int DATABASEHANDLE_RESULT = 13;
    //public static final int DATABASEHANDLE_FLAG = 14;
    public static final int USER_INFO = 21;        //用户信息操作
    public static final int USER_LOGIN = 22;        //用户登录操作
    public static final int USER_REGISTER = 23;      //用户注册操作
    public static final int FIND_USER=31;            //查好友操作
    public static final int RETURN_USERINFO=32;      //返回用户信息操作
    public static final int FIND_GROUP=33;          //查号操作
    public static final int RETURN_GROUPINFO=34;          //返回消息操作
    public static final int JOIN_GROUP=35;                //加入一个
    public static final int RETURN_GROUPMEMBERS=36;    //返回组中成员信息
    public static final int MAKE_FRIENDS=37;              //加好友操作
    public static final int SYSTEM_INFO = 91;          //系统消息
    public static final int SYSTEM_ON_OR_OFFLINE = 92;    // 判断是否在线
    //两个构造函数
    public QDatagramPacket(byte[] b,int length)
    {
        dPacket=new DatagramPacket(b,b.length);
    }
    public QDatagramPacket(byte[] b,int length,InetAddress add,int port)
    {
qq好友查询        dPacket=new DatagramPacket(b,b.length,add,port);
    }
    //获得操作类型
    public int getType()
    {
        pe;
    }
    //设置操作类型
    public void setType(int type)
    {
        pe=type;
    }
}
2.2.1功能分析
本系统要实现的功能如下:
1)注册
服务器收到用户的注册请求,便开始接受客户传递的信息,诸如客户的账号(必须为6-10个字符),呢称,性别,籍贯,个人资料等,接受完毕后,便通过Jdbc-Odbc与后台数据库连接,然后向数据库添加记录。客户收到服务器返回的信息后,便打开主登陆窗口。
2)登陆
在客户端,用户输入其号码和密码,然后建立与服务器的连接,告诉服务器我要登录,服务器收到后,开始通过JdbcOdbc读取数据库,然后与用户输入的信息比较,如果成功,便打开主程序窗口。然后客户向服务器请求读取好友名单,服务器收到该请求,开始读取数据库中的表,得到好友的号码后,再在icq表中读取好友资料,然后向客户端发送这些信息,客户收到后就在主窗口显示好友,并且建立几个矢量(Vector)用以存储好友的呢称,号码。
3)私聊
私聊就是两个聊天。客户端首先发送消息到服务器端,服务器端根据发送人信息和接收者信息来转发。例如服务器接收到一个A发给B的消息,先判断B是否已经在线,如果在线就将信息发送过去。B接收到A发来的信息,如果是未建立对话窗口,就询问是否建立对话,否则就丢弃信息。