JAVA 网络聊天程序设计与实现(附关键代码) 可群聊私聊发送图片

本文介绍了使用JAVA设计的网络聊天程序,支持GUI界面,包含客户端和服务器端,实现了文字、图片的发送,支持群聊和私聊。程序采用TCP协议,使用MySQL数据库存储用户信息,详细阐述了需求分析、数据库设计、界面设计及关键代码实现。
摘要由CSDN通过智能技术生成

需求分析

经分析,本程序是一个C/S结构,使用TCP协议实现聊天功能,需要实现的功能有如下几点。

  1. 本程序需要有客户端以及服务器端。
  2. 客户端应有良好的交互界面,服务器端应有转发客户端发来的消息和临时保存客户端发来的文件
  3. 本程序应支持多用户,用户可在线进行即时交流
  4. 用户端可发送文字,图片。且支持群聊和私聊
  5. 本程序登陆需要提供账号和密码,账号密码由数据库保存。
  6. 客户端提供注册功能,可选择设置自己的账号密码和昵称。

1.1客户端功能

  1. 客户端可在好友列表看到已上线的好友。
  2. 客户端可在输入框中编辑文字并且可以发送文字消息。
  3. 客户端可选择图片发送给指定好友
  4. 客户端可以进行群聊和私聊。
  5. 客户端保存服务器发来的图片文件,并显示。
  6. 客户端可显示服务器发过来的消息。

1.2服务器功能

  1. 接受文字消息并转发给指定客户端
  2. 接受并且保存客户端发来的图片并转发
  3. 每当有一个客户端连接,就给所有客户端更新好友列表
  4. 每当有一个客户端连接,就给所有客户端发送好友上线通知
  5. 每当有一个客户端离线,就给所有客户端发送好友下线通知

程序流程图

用例图

2.3.1用户用例图

用户用例图如下

2.3.2客户端用例图

2.3.3服务器端用例图

数据库设计

本程序使用mySQL数据库保存用户信息。

本程序所涉及到的表有用户表qq_user。

3.1用户表设计

如图为qq_user表的设计

数据库连接关键代码

private static String userName;

private static String password;

private static String id;



private static String connectString = "";

static {

    try {

        connectString = "jdbc:mysql://localhost:3306/qqpro";  //端口+数据库名字

        password = "123456";   //mysql账号

        userName = "root"; //mysql密码

        Class.forName("com.mysql.jdbc.Driver");

    } catch (ClassNotFoundException e) {

        e.printStackTrace();

    }



}



public static Connection getConnect() {

    try {

        return DriverManager.getConnection(connectString, userName,password);

    } catch (SQLException e) {

        e.printStackTrace();

    }

    return null;

}

界面设计

4.1.1登录界面

图4-1登陆界面

4.1.2 注册界面

图4-2注册界面

4.1.3聊天主界面

图4-3主界面

5 功能展示

启动SERVER,然后启动三次Login,打开三个客户端。

点击登录进入主界面

接着PYTHON发送一条信息给所有人

再发一条图片给所有人

再由JAVA发送一条消息给C++。双击好友栏可私聊。

再发送图片给PYTHON

</

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值