Java-简单的socket通信

网络通信通过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。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181110G0D8ZH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励