• 大小: 1.04MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-30
  • 语言: Java
  • 标签: QQ聊天  Gui程序  

资源简介

挺漂亮的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  QQ\QQclient\
     目录           0  2012-06-07 17:54  QQ\QQclient\.svn\
     文件        1199  2012-06-06 08:00  QQ\QQclient\.svn\entries
     目录           0  2012-06-07 17:54  QQ\QQclient\.svn\prop-base\
     文件          53  2012-06-04 21:25  QQ\QQclient\.svn\prop-base\girl.png.svn-base
     文件          53  2012-06-04 21:25  QQ\QQclient\.svn\prop-base\man.gif.svn-base
     文件          53  2012-06-04 21:25  QQ\QQclient\.svn\prop-base\man.png.svn-base
     目录           0  2012-06-06 18:18  QQ\QQclient\.svn\props\
     目录           0  2012-06-07 17:54  QQ\QQclient\.svn\text-base\
     文件        3719  2012-06-04 21:25  QQ\QQclient\.svn\text-base\build.xml.svn-base
     文件        5006  2012-06-04 21:25  QQ\QQclient\.svn\text-base\girl.png.svn-base
     文件        7482  2012-06-04 21:25  QQ\QQclient\.svn\text-base\java_swing_更酷的Jlist.txt.svn-base
     文件        4146  2012-06-04 21:25  QQ\QQclient\.svn\text-base\man.gif.svn-base
     文件        4971  2012-06-04 21:25  QQ\QQclient\.svn\text-base\man.png.svn-base
     文件          85  2012-06-04 21:25  QQ\QQclient\.svn\text-base\manifest.mf.svn-base
     目录           0  2012-06-06 18:18  QQ\QQclient\.svn\tmp\
     目录           0  2012-06-06 18:18  QQ\QQclient\.svn\tmp\prop-base\
     目录           0  2012-06-06 18:18  QQ\QQclient\.svn\tmp\props\
     目录           0  2012-06-06 18:18  QQ\QQclient\.svn\tmp\text-base\
     目录           0  2012-06-06 18:18  QQ\QQclient\build\
     文件        3719  2012-06-04 21:25  QQ\QQclient\build.xml
     目录           0  2012-06-07 17:54  QQ\QQclient\build\.svn\
     文件         203  2012-06-04 21:25  QQ\QQclient\build\.svn\entries
     目录           0  2012-06-06 18:18  QQ\QQclient\build\.svn\prop-base\
     目录           0  2012-06-06 18:18  QQ\QQclient\build\.svn\props\
     目录           0  2012-06-06 18:18  QQ\QQclient\build\.svn\text-base\
     目录           0  2012-06-06 18:18  QQ\QQclient\build\.svn\tmp\
     目录           0  2012-06-06 18:18  QQ\QQclient\build\.svn\tmp\prop-base\
     目录           0  2012-06-06 18:18  QQ\QQclient\build\.svn\tmp\props\
     目录           0  2012-06-06 18:18  QQ\QQclient\build\.svn\tmp\text-base\
............此处省略739个文件信息

评论

共有 条评论