资源简介

基于socket编写的聊天室程序,有私聊和群聊功能,限制同名用户登陆

资源截图

代码片段和文件信息

package chat;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.titledBorder;
import javax.swing.event.ListDataEvent;
import javax.swing.event.ListDataListener;

import java.io.*;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;

public class Client {

private Jframe frame;

private JTextField txt_port;
private JTextField txt_hostIp;
private JTextField txt_name;
private JButton btn_start;
private JButton btn_stop;
private JPanel northPanel;

private JTextArea textArea;
private JScrollPane rightScroll;
private JList userList;
private JScrollPane leftScroll;
private JSplitPane centerSplit;

private JComboBox comboBox;
private JButton btn_send;
private JPanel pane;
private JTextField textField;
private JPanel southPanel;

private DefaultListModel listModel;
private boolean isConnected = false;//初始状态为”未连接“

private Socket socket;
private PrintWriter writer;       //输出流
private BufferedReader reader;    //输入流
private MessageThread messageThread;// 负责接收消息的线程
private Map onLineUsers = new HashMap();// 所有在线用户

// 执行发送
public void send() {
if (!isConnected) {            //如果没连接服务器则报错
JOptionPane.showMessageDialog(frame “还没有连接服务器,无法发送消息!“ “错误“
JOptionPane.ERROR_MESSAGE);
return;
}
String message = textField.getText().trim();      //发送消息
if (message == null || message.equals(““)) {
JOptionPane.showMessageDialog(frame “消息不能为空!“ “错误“
JOptionPane.ERROR_MESSAGE);
return;
}
sendMessage(frame.gettitle() + “@“ + comboBox.getSelectedItem() + “@“ + message);//发送的消息为客户机名+message
textArea.append(frame.gettitle()+“对“+comboBox.getSelectedItem()+“说:“+“\n“+message+“\n“);
textField.setText(null);//发送完消息后清空发送框
}

// 构造方法
public Client() {
textArea = new JTextArea();
textArea.setEditable(false);
textArea.setForeground(Color.blue);
textArea.setFont(new Font(“楷体“Font.PLAIN15));
textField = new JTextField();
txt_port = new JTextField(“8888“);//端口
txt_hostIp = new JTextField(“127.0.0.1“);//ip地址
txt_name = new JTextField(“a“);//用户名
btn_start = new JButton(“连接“);//连接按钮
btn_stop = new JButton(“断开“);//断开按钮
btn_send = new JButton(“发送“);//发送按钮
    listModel = new DefaultListModel();//
userList = new JList(listModel);//用户列表

northPanel = new JPanel();
northPanel.setLayout(new GridLayout(1 8));
northPanel.add(new JLabel(“服务器端口“));
northPanel.add(txt_port);
northPanel.add(new JLabel(“服务器IP“));
northPanel.add(txt_hostIp);
northPanel.add(new JLabel(“用户名“));
northPanel.add(txt_name);
northPanel.add(btn_start);
northPanel.add(btn_stop);
northPanel.setBorder(new titledBorder(“设置“));

rightScroll = new JScrollPane(textArea);
rightScroll.setBorder(new titledBorder(“消息显示区“));//消息显示区
leftScroll = new JScrollPane(userList);
leftScroll.setBorder(ne

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

     文件        232  2010-02-04 18:05  chatbox\.classpath

     文件        383  2013-01-10 16:49  chatbox\.project

     文件        956  2013-01-10 18:57  chatbox\bin\chat\Client$1.class

     文件        626  2013-01-10 18:57  chatbox\bin\chat\Client$2.class

     文件        623  2013-01-10 18:57  chatbox\bin\chat\Client$3.class

     文件       2221  2013-01-10 18:57  chatbox\bin\chat\Client$4.class

     文件       1753  2013-01-10 18:57  chatbox\bin\chat\Client$5.class

     文件        748  2013-01-10 18:57  chatbox\bin\chat\Client$6.class

     文件       1363  2013-01-10 18:57  chatbox\bin\chat\Client$7.class

     文件       4382  2013-01-10 18:57  chatbox\bin\chat\Client$MessageThread.class

     文件       9738  2013-01-10 18:57  chatbox\bin\chat\Client.class

     文件       3321  2012-03-06 20:11  chatbox\bin\chat\msn.png

     文件        955  2013-01-10 18:29  chatbox\bin\chat\Server$1.class

     文件        736  2013-01-10 18:29  chatbox\bin\chat\Server$2.class

     文件        623  2013-01-10 18:29  chatbox\bin\chat\Server$3.class

     文件        626  2013-01-10 18:29  chatbox\bin\chat\Server$4.class

     文件       2498  2013-01-10 18:29  chatbox\bin\chat\Server$5.class

     文件       1720  2013-01-10 18:29  chatbox\bin\chat\Server$6.class

     文件       4977  2013-01-10 18:29  chatbox\bin\chat\Server$ClientThread.class

     文件       2993  2013-01-10 18:29  chatbox\bin\chat\Server$ServerThread.class

     文件       8204  2013-01-10 18:29  chatbox\bin\chat\Server.class

     文件        956  2013-01-10 19:01  chatbox\bin\chat\User.class

     文件      13730  2013-01-11 08:29  chatbox\src\chat\Client.java

     文件       3321  2012-03-06 20:11  chatbox\src\chat\msn.png

     文件      14668  2013-01-10 15:52  chatbox\src\chat\Server.java

     文件        509  2013-01-10 19:01  chatbox\src\chat\User.java

     文件      31434  2013-01-11 08:28  Client.jar

     文件      31433  2013-01-10 22:30  Server.jar

     目录          0  2013-01-11 20:39  chatbox\bin\chat

     目录          0  2013-01-11 20:39  chatbox\src\chat

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

评论

共有 条评论