最近刚好是期末,碰上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文件整合的压缩包下载
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/9091.html