多线程实现字典系统(server+client)

                                   多线程字典系统实现

首先说明下该系统可以实现的功能,小白都可以!!!!

该博客只提供学习和实现的思路,如果需要详细的代码,请留言!!!

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. 这些知识都具备了就可以整合到一起了。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章