• 大小: 67KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-06-17
  • 语言: Java
  • 标签:

资源简介

Java QQ聊天程序源码,userInfo.properties拷贝到C盘根目录下,存放与服务器连接上的对应的Socket,作用是保存服务器与客户端之间的流,便于服务器给每个客户端进行回发消息。   SocketListener内部类:监听客户端是否有连接到服务器,并将此客户端的Socket传递给HandleSocket进行处理,同时将client存放到List中,即clientConnection中。 HandleSocket内部类:处理一个Socket,接收一个Client发送过来的消息,并且服务器原封不动的返回给所有客户端,客户端对消息进行过滤。

资源截图

代码片段和文件信息

package com.qq.main;

import java.awt.Dimension;
import java.awt.TextArea;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.IOException;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.Jframe;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;

public class AllTalkframe extends Jframe {

TextArea oldMessageTextArea;
TextArea sendMessageTextArea;
JList userList;
JScrollPane userListPane;
JButton btSend;
JButton btClosed;
JButton upLine;
String doubleClickedName;
Client client;
String clientName;
JLabel userlisttitle;
Vector users;

// 只要服务器端有消息,就将消息显示到oldMessageTextArea
class showOldMessageThread implements Runnable {
public void run() {
boolean flag = true;
while (flag) {
try {
// 接收群聊服务器端回发过来的消息
String serverOutput = client.br.readLine() + “\r\n“;
if (!serverOutput.startsWith(“私聊“)
&& !serverOutput.startsWith(“*“)
&& !(serverOutput.substring(serverOutput
.indexOf(“:“) + 1).equals(“\r\n“))) {
String s1 = serverOutput.replace(‘说‘ ‘ ‘);
String s = s1.replaceAll(“罎“ “\r\n     “);
oldMessageTextArea.append(s);
}

// 添加客户端的用户在线列表
if (!serverOutput.startsWith(“*“)
&& !serverOutput.startsWith(“私聊“)
&& (serverOutput.indexOf(“说“) != -1)) {
String listName = serverOutput.substring(0
serverOutput.indexOf(‘说‘));
// 如果JList中有相同名字的用户,则不添加,否则添加
if (!users.contains(listName)) {
System.out.println(“用户“ + listName + “上线了“);
users.add(listName);
userList.setListData(users);
}
}

// 判断服务器回发过来的消息是不是以“私聊“开头的,是的话就提取出这两个用户名
if (serverOutput.startsWith(“私聊“)) {
String siliaoName1 = serverOutput.substring(
serverOutput.indexOf(“*“) + 1 serverOutput
.indexOf(“和“));
String siliaoName2 = serverOutput.substring(
serverOutput.indexOf(“和“) + 1 serverOutput
.indexOf(“\r“));
String siliaoBenshen = ““;
String siliaoDuixiangName = ““;
if (siliaoName1.equals(clientName)) {
siliaoBenshen = siliaoName1;
siliaoDuixiangName = siliaoName2;
} else {
siliaoBenshen = siliaoName2;
siliaoDuixiangName = siliaoName1;
}
// 判断这两个名字中是否有与自己同名的,有的话就弹出个私聊窗口
if (siliaoName1.equals(clientName)
|| siliaoName2.equals(clientName)) {
new PointToPointTalkframe(siliaoBenshen + “和“
+ siliaoDuixiangName).setVisible(true);
}
}
} catch (IOException e1) {
System.out.println(“读取服务器端消息出错“);
}
}
}
}

AllTalkframe(final String clientName) {
this.clientName = clientName;
client = 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        232  2012-07-10 19:20  srcfans.com\QQ\QQ\.classpath

     文件        382  2012-07-10 19:20  srcfans.com\QQ\QQ\.project

     文件         89  2012-07-10 19:20  srcfans.com\QQ\QQ\.settings\org.eclipse.core.resources.prefs

     文件        930  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\main\AllTalkframe$1.class

     文件       1488  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\main\AllTalkframe$2.class

     文件       1615  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\main\AllTalkframe$3.class

     文件        749  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\main\AllTalkframe$4.class

     文件       1659  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\main\AllTalkframe$5.class

     文件       2985  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\main\AllTalkframe$showOldMessageThread.class

     文件       3349  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\main\AllTalkframe.class

     文件       1695  2012-07-10 19:25  srcfans.com\QQ\QQ\bin\com\qq\main\Client.class

     文件       1864  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\main\Main$1.class

     文件        659  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\main\Main$2.class

     文件       2486  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\main\Main.class

     文件       1485  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\main\PointToPointTalkframe$1.class

     文件        780  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\main\PointToPointTalkframe$2.class

     文件       2793  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\main\PointToPointTalkframe$showOldMessageThread.class

     文件       3106  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\main\PointToPointTalkframe.class

     文件        778  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\regist\Regist$1.class

     文件        786  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\regist\Regist$2.class

     文件       1074  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\regist\Regist$3.class

     文件        783  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\regist\Regist$4.class

     文件       2052  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\regist\Regist$5.class

     文件        844  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\regist\Regist$6.class

     文件       3014  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\com\qq\regist\Regist.class

     文件       1812  2012-07-10 19:27  srcfans.com\QQ\QQ\bin\com\qq\regist\UserInformation.class

     文件       2289  2012-07-10 19:25  srcfans.com\QQ\QQ\bin\com\qq\server\Server$HandleSocket.class

     文件       1408  2012-07-10 19:25  srcfans.com\QQ\QQ\bin\com\qq\server\Server$SocketListener.class

     文件       1558  2012-07-10 19:25  srcfans.com\QQ\QQ\bin\com\qq\server\Server.class

     文件       3845  2012-07-10 19:20  srcfans.com\QQ\QQ\bin\images\企鹅.JPG

............此处省略34个文件信息

评论

共有 条评论