# Java基于多线程和NIO实现聊天室
- 涉及到的技术点
- 线程池ThreadPoolExecutor
- 阻塞队列BlockingQueue,生产者消费者模式
- Selector
- Channel
- ByteBuffer
- ProtoStuff 高性能序列化
- HttpClient连接池
- Spring依赖注入
- lombok简化POJO开发
- 原子变量
- 内置锁
- CompletionService
- log4j+slf4j日志
- 实现的功能
- 登录注销
- 单聊
- 群聊
- 客户端提交任务,下载图片并显示
- 上线下线公告
- 在线用户记录
- 批量下载豆瓣电影的图片,并打为压缩包传输给客户端
- 客户端使用方式:
- 登录:默认用户名是user1-user5,密码分别是pwd1-pwd5
- 例:打开客户端后输入用户名为user1,密码为pwd1
- 注销:关闭客户端即可
- 单聊:@username:message
- 例:@user2:hello
- 群聊:message
- 例:hello,everyone
- 提交任务:task.file:图片的URL / task.crawl_image:豆瓣电影的id[?imageSize=n] 可以加请求参数
- 例1:task.file:https://img1.doubanio.com/view/movie_poster_cover/lpst/public/p2107289058.webp
下载完毕后会弹出一个框,输入想将其保存到的路径,比如E:/img.webp
- 例2:task.crawl_image:1292371?imageSize=2
下载完毕后在弹出的框中输入E:/images.zip
- 假设用户输入都是符合格式的
- 尽可能提高程序的健壮性,对各种异常情况进行处理
- 不得不承认的是,客户端做的很粗糙,主要开发目的还是练习Java的多线程和NIO
没有合适的资源?快使用搜索试试~ 我知道了~
多线程精品资源--Java NIO+多线程实现聊天室.zip
共49个文件
java:40个
xml:5个
docx:1个
需积分: 5 0 下载量 118 浏览量
2024-02-17
23:05:34
上传
评论
收藏 7.42MB ZIP 举报
温馨提示
多线程精品资源--Java NIO+多线程实现聊天室
资源推荐
资源详情
资源评论
收起资源包目录
多线程精品资源--Java NIO+多线程实现聊天室.zip (49个子文件)
ahao5
pom.xml 9KB
chat-client
pom.xml 2KB
src
main
java
cn
sinjinsong
chat
client
ChatClient.java 12KB
chat-server
pom.xml 6KB
src
test
java
cn
sinjinsong
chat
server
ChatServerTest.java 539B
main
resources
applicationContext.xml 930B
log4j.properties 719B
java
cn
sinjinsong
chat
server
handler
message
MessageHandler.java 1KB
impl
LoginMessageHandler.java 4KB
TaskMessageHandler.java 1KB
LogoutMessageHandler.java 3KB
BroadcastMessageHandler.java 1KB
NormalMessageHandler.java 3KB
task
file
FileTaskHandler.java 2KB
BaseTaskHandler.java 1KB
crawl
CrawlImageTaskHandler.java 3KB
ImageThread.java 916B
task
TaskManagerThread.java 3KB
ChatServer.java 9KB
http
HttpConnectionManager.java 3KB
user
UserManager.java 2KB
property
PromptMsgProperty.java 930B
exception
TaskException.java 360B
handler
InterruptedExceptionHandler.java 1KB
TaskExceptionHandler.java 2KB
factory
ExceptionHandlingThreadFactory.java 603B
util
SpringContextUtil.java 1KB
ImageURLCrawlerUtil.java 4KB
RequestParser.java 943B
common
pom.xml 5KB
src
main
java
cn
sinjinsong
common
enumeration
MessageType.java 645B
ResponseType.java 596B
TaskType.java 327B
ResponseCode.java 971B
util
ZipUtil.java 1KB
ProtoStuffUtil.java 2KB
DateTimeUtil.java 1KB
FileUtil.java 591B
domain
Message.java 302B
TaskDescription.java 353B
Request.java 329B
Response.java 304B
ResponseHeader.java 456B
MessageHeader.java 448B
User.java 406B
Task.java 448B
Java Concurrent专题.docx 7.59MB
.gitignore 257B
README.md 2KB
共 49 条
- 1
资源评论
码农阿豪
- 粉丝: 9893
- 资源: 1750
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功