网络通信通过socket连接服务器与多个客户端,并且达到服务器可以向所有客户端群发消息的效果,也就是聊天群。下面是一个借鉴了课上内容,自己写的带有图形界面的聊天室。
https://github.com/valeeraZ/Chat(复制粘贴链接到浏览器)
通过Eclipse可导入项目,请先启动ChatServer.java,之后才可启动数个ChatClient.java。
基本界面
输入所连接的服务器IP地址,本机运行默认为127.0.0.1
输入本次登陆的id,其中所有用户名存储在一个HashSet中,以确保每个用户的id不同。
左侧是在服务器上已连接的用户,可以通过多次运行 ChatClient.java以登陆多个用户。每当有一个用户登陆,服务器端便新建一个线程,并把PrintWriter存储到HashSet
writers中。通过for循环writers中的所有元素以进行println操作发送信息,达到群发的效果。
robot9000是聊天室中的机器人脚本,它要求所有用户不得发送已经重复发送过,完全相同的信息,比如重复lol,haha这类完全没有价值的信息。将每条message存储在HashSet中,即可实现此功能。
在最下方的JTextField输入消息,即显示在中间的JTextArea。
领取专属 10元无门槛券
私享最新 技术干货