基于Socket/ServerSocket多线程实现的聊天室[附源代码]

主要说明的是:

1.服务器端开启3个线程:

主线程进行端口监听,

第一个子线程由主线程派生出来,用来遍历所有已接入的客户端,

第二个线程由第一个子线程派生出来,用来将客户端发送的信息转发给所有的客户端,第二个线程其实是多个,这里的第二个是层次的说明。

主线程 -----> 遍历线程 -----<获取到客户端发送的信息>-----> 转发线程

2.客户端开启2个线程:

主线程获取用户输入,

子线程读取服务器送回的数据并显示。

3.客户端的信息输入

用户可以进行输入信息,输入特定的字符串时结束输入并将信息发送至服务器。

4.服务器接收信息

服务器读取到客户端信息后需要将构建一个信息对象,然后将该对象转发给所有的客户端。

5.服务器的日志记录

创建一个文件保存服务器的运行记录,创建时主要检查文件是否已存在。

6.对象传送

将对象转换为字节流进行发送,需要进行序列化。对于需要序列化的对象,其成员变量必须是可序列化的。

7.工程目录:

ClientBean:客户端对象,服务器端程序与客户端程序都需要使用,无法序列化。

ClientManager:服务端维护所有客户端的工具类。

EntranceClient:客户端入口程序。

EntranceServer:服务器入口程序。

MessageBean:服务器发送给客户端的信息对象,需要进行序列化。

MessageBroadcaster:服务器信息广播子线程,在服务器获取客户端发送的信息后调用。

Sender:信息发出者,包含了客户端的IP(String),Port(int),是MessageBean的一个成员变量。

SerialMessage:对象转换为字节/字节解析成对象。

ServerLog:服务器端日志操作。


源代码下载:http://bk461409485.download.csdn.net/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值