多线程字典系统实现
首先说明下该系统可以实现的功能,小白都可以!!!!
该博客只提供学习和实现的思路,如果需要详细的代码,请留言!!!
1 具体要求
简单来说,就是实现服务器端和客户端,可以做到多个客户端并发对字典中的数据进行操作,但是不考虑跨局域网的情况,但是我稍后的文章会介绍一个跨局域网多线程系统的实现。
1.需要实现客户端和服务器端 Socket
2.实现多用户并发执行字典查询等操作 Thread类/Runnable接口
3.使用了TCP/UDP协议,因为想要保证数据的可靠性,我选择了TCP
4.数据的存储可以使用txt文件,但是我这里使用的是MySQL数据库
5.可以添加线程池的功能,也就是用来控制服务器端可以处理的线程数。因为要求我不能使用现成的类库,但是有需要的同学可以自己添加。
6.GUI使用的是java的swing库。
2. 设计思路
我会详细的描述下我的思路,但是我不会提供具体的代码,如果有代码的需要,请留言或者私聊联系:
为了完成这个任务,我们需要具体一些知识,刚开始学习的同学,可能会觉得很混乱,不是该干什么。
1. 需要了解java中Thread类或者Runnable接口如何使用
这里只需要知道thread和runnable如何使用就可以,都是最基本的函数。网上文章一堆。
2. 需要知道java如何实现TCP实现,我之前写过一个文章(代码详解),不会的可以采纳:「java」TCP编程
但是我在这里也简单的提下TCP的实现
首先对于server来说,它需要开放一个port来监听,是否有client的请求。当server开启后,这个端口就会在服务器一端开启,开始等待。也就是下面这句代码,这个是服务器自己定义的。
ServerSocket serverSocket =new ServerSocket(port);
如果client需要连接,那么就需要对这个port传输request。接下啦,如果有client发出,请求,server就会使用下面的语句知道,然后开始处理。
socketClient=serverSocket.accept();
然后server就可以使用socketClient来接收client的信息,并且向client写入信息。
这里信息的传递,可以自定义,比如json等,我使用的是BufferedReader。
下面说一下client部分,client需要使用socket来连接sever,显而易见的两个参数是serverIP(address)和serverPort。
Socket socket = new Socket(serverIp, serverPort);
只要服务器和客户端都正常运行,二者已经建立了联系,可以传输数据了,传输方式和上文的一样。
3. GUI的设计需要swing类
4. 这些知识都具备了就可以整合到一起了。