利用Java网络编程实现简单聊天室

本文介绍了使用Java网络编程中的TCP协议创建一个简单的多人聊天室。通过在服务器端存储所有客户端连接,当接收到消息时,遍历集合将消息广播到每个客户端,实现了聊天室的功能。同时,利用多线程确保了消息的一对多传输。
摘要由CSDN通过智能技术生成

最近学到了Java的网络编程,对TCP协议以及UDP协议有了一些初步的认识,现在尝试使用TCP协议建立一个简单的多人聊天室,去实现多人在线聊天。
以下是具体实现思路:
在这里插入图片描述
经过最初的学习,我们知道TCP协议是在两台计算机之间建立连接,然后可以把数据当作双向字节流进行交换, 以便达到传输的目的。但是这样只能达到双人聊天(私聊)的效果,而聊天室的特点在于某一个客户端发出的消息,在聊天室中的其他客户端都能接收到该消息(包括自己)。

基于以上考虑,我们可以在服务器设置一个集合(容器),每当有一个客户端连接,都将这个客户端存储到集合中,然后将某一个客户端发送的消息再通过遍历集合发送到每个连接到服务器的客户端。
同时,要实现一对多的连接,就需要用到多线程的思想:
public class ServerThread extends Thread{

private Socket socket; 
private Set<Socket> set; 
public ServerThread(Socket socket, Set<Socket> set){
     this.socket=socket;
     this.set=set;
}
@Override
public void run() {
     SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss");//将消息发送时间格式化
     try {
       
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值