多线程字典服务器实现(Java)

回顾前文

多线程入门练习
多线程通信
  在之前的多线程学习中,了解了TCP/UDP网络Socket编程,解决了服务器端建立连接后向客户端发送多条消息接收的问题,解决方法通俗易懂,接收信息的功能由客户端集中到线程处理,实现多线程同步。但是有时候服务端只实现了单用户的功能,而现在需要多用户访问服务端资源,服务端要和各个客户端建立连接,用对话进行通信,就像我们用微信、视频等每天都有客户端,这是多用户与服务器通信的一个例子。
  简单来说,本次任务就是使用客户端-服务器架构,设计和实现服务器端和客户端,允许并发客户端搜索单词的含义,添加一个新单词,删除一个现有的单词,可以同时做多个客户端对字典中的数据进行操作,但不考虑跨局域网的情况。

系统组件的简要说明

简要描述;简介
该系统包括服务器和客户端实现,并具有显式使用 Java 线程和套接字来进行并发处理和远程通信。自定义字典数据是从本地文件中读入的。

具体使用和实现要求如下。

1.需要实现客户端和服务端的Socket
2.实现多user并发执行字典查询/增加/删除等操作Thread类/Runnable接口
3.多线程字典系统使用TCP协议
4.系统数据的存储使用的是Json文件

系统功能

(1)查询给定单词的含义
在这里插入图片描述
(2)添加/更新一个新词和含义
在这里插入图片描述在这里插入图片描述

(3)删除现有单词
在这里插入图片描述
服务器为每个请求创建一个线程,并通过更改字典来执行操作。
在这里插入图片描述

整体架构

在这里插入图片描述
  该系统遵循客户端/服务器架构,允许多个客户端连接到(单个)多线程服务器并同时执行操作。
• DictionaryClient.jar/ DictionaryServer.jar – 用于运行系统
在这里插入图片描述
在这里插入图片描述
• MultiThreadDictionary.java - 处理请求并对字典进行更改的多线程服务器
• DictionaryCommand.java/ OnlineDictCommand.java - 命令格式的服务器客户端要求
• DictServer.java - 设置字典服务器并等待客户端请求。 (接受请求并创建线程的服务器 GUI)
• OnlineDict.java - 为客户提供一个交互界面来发送他们的请求并获得反馈。(接受请求并创建线程的客户端 GUI)
• dictionary.json - json 条目格式的字典文件
在这里插入图片描述

未来改进展望

  明确地说,套接字和线程是网络通信和并发的最低抽象级别。 未来系统可以增加线程池的功能,即控制服务器端可以处理的线程数。 创建线程池时,它会实例化一定数量的线程以使其可用。
  以后要拿mysql数据库来导入字典数据,因为如果用文件,需要自己写锁。 但是没有使用数据库,这是由于它自己的锁定机制。
  此外,前端的界面设计非常简单,以后可以了解更多关于GUI的设计。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值