Java Socket 通信 (五)

在寫了簡單的socket通信之後,該開始封裝了!廢話少說,跟着思路走:

一、傳輸數據的封裝

根據前幾次的博客內容,我發現,客戶端和服務器讀和寫的數據可以封裝起來,統一叫做Packet。這樣服務器和客戶端通信就有了“規矩”,客戶端不再是隨隨便便的來一個未知的字符串,讓服務器懵逼很久。有了統一的格式,約定俗成,通信就方便快捷多了!

在包中,我們約定,每個包都有一個id值(對應packetId),命令號(對應command),內容(對應content)。上一篇博客說過,命令號,就對應一個請求。內容是包的主體部分。這只是一個抽象類,具體讓實現類去實現。產生Packet的得有個類,叫PacketFactory.java吧!Packet是否發送成功,需要一個監聽PacketListener.java。

具體代碼我就不貼了,在文末鏈接去下載吧!

二、讀寫線程封裝

客戶端和服務器的讀寫線程都可以抽出來,建立兩個類,分別是PacketWriter.java和PacketReader.java.雖然說實際項目中服務器的讀寫不需要我們管。但暫時還是得模擬下。

三、客戶端的封裝

在我看來,客戶端與服務器通信就是一個連接。連接上了,就可以通信了,連接出現問題,就報錯了。先建立一個接口叫Connection.java.有沒有連接上得需要監聽。所以說還得需要一個ConnectionListener.java.再寫個抽象類,將socket中大多數共性方法寫在裏面。

四、實現封裝的接口,繼承抽象類,測試。
新建WPBPacket.java 實現Packet。新建WPBClientForMockServer.java繼承抽象類。當然還得要有一個服務器了。

代碼在我的github上:https://github.com/Demidong/JavaSocket

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