当前位置:网站首页 > Java教程 > 正文

java聊天室开发教程



最近刚好是期末,碰上Java实训,借此将之前写的在线聊天室搬出来,加上GUI(Swing),当成实训作品,记录一下这次实训的结果。

本篇文章主要叙述的是 ① 在线聊天室的代码结构; ② 将java文件打包成jar,再打包成exe文件; ③ 利用内网穿透技术实现与他人在线聊天。 附:在线聊天室实用socket通信,利用的网络协议是TCP,架构为C/S模式(Client-Server=>客户机-服务器)

1)设置聊天室服务器的端口号,管理员昵称,启动服务器或者关闭服务器。 2)系统消息日志记录,管理员可发布系统消息给各在线用户。 3)管理员在线与聊天室在线用户进行群聊。 4)管理员可对在线用户列表中指定用户进行私聊请求,对方同意即可开始私聊。 5)管理员可对在线用户列表中指定用户进行踢出聊天室操作,并通知其他人。

(2)聊天室客户端

1)用户设置聊天室IP,端口号,用户昵称,连接服务器进入聊天室或退出聊天室。 2)系统消息通知,接受服务器端发布的消息,以及用户一些操作。 3)用户可与其他在线用户进行群聊。 4)用户可与指定用户列表中其他在线用户进行私聊请求,同意即可开始私聊。 5)用户可以屏蔽指定用户列表中的用户的群聊发言,屏蔽后即接受不到对方发言, 同时也可以选择取消屏蔽。

服务器端

客户端

私聊窗口

客户端与服务器交互通过特定的指令与信息,客户端发送特定格式的指令和信息,服务器端接受到指令和信息,根据指令处理不同的业务请求,再将结果信息和响应指令发送到客户端,客户端根据不同指令将信息呈现到用户端GUI,或者改变客户端。

服务器端和用户端的主类都用到了内部类,因为毕竟容易获取主类的变量值,具体的类和方法介绍我就不仔细讲了,代码里面都有注释了,不懂看看注释,肯定不是因为我懒。

服务器端

(1)创建ServerSocket对象,绑定监听端口。 (2)通过accept()方法监听客户端请求 (3)连接建立后,通过输入流读取客户端的数据 (4)通过输出流,向客户端回应信息 - 每有一个新的用户连接生成,会创建对应的子线程来处理对应用户端的需求,用户断开连接时,该线程也随之停止。

客户端
其它代码

1. 服务器端用到的用户信息类

2. 客户端接受获取服务器端指令和信息的线程类

3. 客户端和服务器端都要用到的关闭连接或IO流的工具类

以idea为演示

- 最后jar包就生成了,点开就能运行

提供一个注册码:L-g782dn2d-1f1yqxx1rv1sqd

然后点击下一步

在线聊天室运用的是Socket通信,网络协议是TCP/IP,所以要如何让别的主机电脑访问聊天室呢

注册完后登录后,点击开通隧道。

白嫖党,选择免费服务器。可能会有点卡,但是拿来使用聊天室够了

点击确定后,按图中说明填。

查看隧道,下载该软件,复制对应的TCP隧道ID

下载好软件后,点开目录,启动内网穿透

输入隧道id,回车启动即可

接着,打开聊天室的服务器,记住刚刚填写的本地的端口号,就是127.0.0.1:8888,这里需要一致,我们填写8888,启动服务。

在这个官网申请到的白嫖服务器的公网IP是64.69.43.237,端口号就是自己申请的,或者你可以查看运行的内网穿透窗口。

接着,启动客户端,来测试一下是否成功连接上服务器。

最后,连接成功,赶快把客户端发给同学,大家一起来聊天室聊天吧,哈哈哈

提供在线聊天室服务器端和用户端生成的jar包和exe文件的集合压缩包

CSDN下载地址=>jar包和和exe文件整合的压缩包下载

版权声明


相关文章:

  • java版微信开发教程2025-02-06 20:50:06
  • java简要教程2025-02-06 20:50:06
  • java三大架构教程2025-02-06 20:50:06
  • java账户教程2025-02-06 20:50:06
  • java jersey教程2025-02-06 20:50:06
  • 经典java大学教程2025-02-06 20:50:06
  • java开发代码教程2025-02-06 20:50:06
  • java前台高级教程2025-02-06 20:50:06
  • 基于idea的java教程2025-02-06 20:50:06
  • eclipse教程 java2025-02-06 20:50:06