RUN Server.java First, Then, RUN multiple Client.jave to operate with graphic interface.
先 RUN TalkServer.java, 然后 RUN 多个 TalkClient.jave 来操作图形界面。
-
用户登录
- 支持输入服务器IP地址和用户名进行登录
- 默认连接本地服务器(127.0.0.1)
- 检查用户名是否已被占用
-
聊天模式
- 公共广播:向所有在线用户发送消息
- 私聊:与特定用户进行一对一聊天
- 群聊:在创建的群组内与多个用户聊天
-
用户管理
- 显示在线用户列表
- 显示可用群组列表
- 点击用户名可快速切换到私聊模式
-
群组管理
- 创建新群组
- 选择群组成员
- 加入已有群组
- 点击群组名可快速切换到群聊模式
-
文件传输
- 支持在私聊中发送文件
- 接收方可选择接受或拒绝文件
- 接收方可选择文件保存位置
- 显示文件传输状态和结果
-
分区布局
- 中央聊天区域显示所有消息
- 右侧分页显示用户、群组和广播列表选项
- 底部提供消息输入框和功能按钮
-
消息格式化
- 不同类型消息有不同前缀标识(广播、私聊、群聊、系统消息)
- 清晰显示消息发送者和内容
-
实时更新
- 自动更新在线用户列表
- 自动更新可用群组列表
- 实时接收和显示新消息
-
网络通信
- 基于Socket的TCP通信
- 使用数据流进行消息传输
- 支持文件数据传输
-
多线程处理
- 独立线程接收服务器消息
- 使用SwingUtilities.invokeLater确保UI线程安全
- 文件传输使用单独线程避免阻塞主界面
-
图形界面
- 使用Swing库构建图形界面
- 支持用户交互和消息显示
-
ver1.1
- 优化代码结构
- 优化ui
- 修复第二个客户端无法登录的bug