java编写的QQ聊天程序


挺漂亮的java 模仿QQ的聊天程序,可以传文件,两人聊天,以及群聊 ,做到了冒泡提醒消息。初学java值得参考
资源截图
代码片段和文件信息
/*
 * To change this template choose Tools | Templates
 * and open the template in the editor.
 */
package com.itjob.zfsn.qq.client;

import com.itjob.zfsn.qq.gui.linkManGui;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import qqcommon.*;

/**
 *
 * @author Administrator
 */
public class Client {

    private static final String info = “server.properties“;
    private IMessageService conveyMsg;

    public Client() {
        connectServer();
    }

    /**
     * 注册
     *
     * @param u
     * @return
     */
    public Message rigester(User u) {
        //构造注册消息
        Message msg = new Message(MessageType.Register_Type u);
        //发送注册消息
        conveyMsg.sendMessage(msg);
        //接受注册结果
        return conveyMsg.getMessage();
    }

    /**
     * 连接服务器
     */
    public void connectServer() {
        Properties pro = initInfo();
        String ip=(String) pro.getProperty(“serverIP“);
        int port=Integer.parseInt(pro.getProperty(“port“)) ;
        
        Socket s = null;
        
        try {
            s = new Socket(ipport);
            conveyMsg = TcpMessageServiceImpl.getInstance(s);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (s == null) {
                resetInfo();
                connectServer();
            }
        }

    }

    public void resetInfo() {
        Properties pro = initInfo();
        String temp = ““;
        while (true) {
            temp = JOptionPane.showInputDialog(null “请输入服务器IP“ “连接失败,请配置信息“ JOptionPane.INFORMATION_MESSAGE);
            if (temp.matches(“\d+\.\d+\.\d+\.\d+“)) {
                break;
            }
            JOptionPane.showMessageDialog(null “请填写正确的IP“ “错误提示“ JOptionPane.ERROR_MESSAGE);
        }
        pro.setProperty(“serverIP“ temp);
        while (true) {
            temp = JOptionPane.showInputDialog(null “请填写服务器端口号“);
            if (temp.matches(“\d+“)) {
                break;
            }
            JOptionPane.showMessageDialog(null “端口号是整数“ “错误提示“ JOptionPane.ERROR_MESSAGE);
        }
        pro.setProperty(“port“ temp);
        try {
            pro.store(new FileOutputStream(info) ““);
        } catch (IOException ex) {
            Logger.getLogger(Client.class.getName()).log(Level.SEVERE null ex);
        }
    }

    /**
     * 用户登录
     *
     * @param user
     * @return
     */
    public Message login(User user) {
        //构造登录消息
        Message msg = new Message(MessageType.Login_Type user);
        //发送消息
        conveyMsg.sendMessage(msg);
        //接收消息
        return conveyMsg.getMessage();
    }

    /**
     * 开始接收信息
     *
     * @param s
     * @param lm liakManGui

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-06-06 18:18  QQ
     目录           0  2012-06-08 10:19  QQQQclient
     目录           0  2012-06-07 17:54  QQQQclient.svn
     文件        1199  2012-06-06 08:00  QQQQclient.svnentries
     目录           0  2012-06-07 17:54  QQQQclient.svnprop-base
     文件          53  2012-06-04 21:25  QQQQclient.svnprop-basegirl.png.svn-base
     文件          53  2012-06-04 21:25  QQQQclient.svnprop-baseman.gif.svn-base
     文件          53  2012-06-04 21:25  QQQQclient.svnprop-baseman.png.svn-base
     目录           0  2012-06-06 18:18  QQQQclient.svnprops
     目录           0  2012-06-07 17:54  QQQQclient.svn ext-base
     文件        3719  2012-06-04 21:25  QQQQclient.svn ext-baseuild.xml.svn-base
     文件        5006  2012-06-04 21:25  QQQQclient.svn ext-basegirl.png.svn-base
     文件        7482  2012-06-04 21:25  QQQQclient.svn ext-basejava_swing_更酷的Jlist.txt.svn-base
     文件        4146  2012-06-04 21:25  QQQQclient.svn ext-baseman.gif.svn-base
     文件        4971  2012-06-04 21:25  QQQQclient.svn ext-baseman.png.svn-base
     文件          85  2012-06-04 21:25  QQQQclient.svn ext-basemanifest.mf.svn-base
     目录           0  2012-06-06 18:18  QQQQclient.svn mp
     目录           0  2012-06-06 18:18  QQQQclient.svn mpprop-base
     目录           0  2012-06-06 18:18  QQQQclient.svn mpprops
     目录           0  2012-06-06 18:18  QQQQclient.svn mp ext-base
     目录           0  2012-06-06 18:18  QQQQclientuild
     文件        3719  2012-06-04 21:25  QQQQclientuild.xml
     目录           0  2012-06-07 17:54  QQQQclientuild.svn
     文件         203  2012-06-04 21:25  QQQQclientuild.svnentries
     目录           0  2012-06-06 18:18  QQQQclientuild.svnprop-base
     目录           0  2012-06-06 18:18  QQQQclientuild.svnprops
     目录           0  2012-06-06 18:18  QQQQclientuild.svn ext-base
     目录           0  2012-06-06 18:18  QQQQclientuild.svn mp
     目录           0  2012-06-06 18:18  QQQQclientuild.svn mpprop-base
     目录           0  2012-06-06 18:18  QQQQclientuild.svn mpprops
     目录           0  2012-06-06 18:18  QQQQclientuild.svn mp ext-base
............此处省略739个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)