多線程實現字典系統(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. 這些知識都具備了就可以整合到一起了。

 

 

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