Springboot+TCP監(jiān)聽服務(wù)器搭建過程圖解
最近從eclipese轉(zhuǎn)到idea,也從SpringMVC轉(zhuǎn)到Springboot,重新搭建了一個基于Springboot的TCP監(jiān)聽。話不多說,直接上圖。

這邊是監(jiān)聽的文件夾,其中,EchoThread是處理上傳信息的線程,SocketPool是用來存放socket的,SpringListener是隨項目啟動的TCP監(jiān)聽程序。
1.先來說說這個SpringListener

首先要做的第一點就是監(jiān)聽隨項目啟動,springboot提供了兩種方案,第一種就是像這樣直接繼承CommandLineRunner,還有另外一種嘛,我也沒用過,這里就多說了。
隨項目啟動后,要做的就是監(jiān)聽端口了,和所有的tcp監(jiān)聽一樣,對著指定的端口直接new一個sever,然后while循環(huán)監(jiān)聽,把監(jiān)聽到的socket直接拋給信息處理的線程去處理。唯一不同的是,這邊在傳遞的是時候,多傳了一個數(shù)據(jù)庫的接口。因為接下來的線程類作為普通類是沒辦法實現(xiàn)對數(shù)據(jù)庫service層的調(diào)用(注:這邊其實是有辦法實現(xiàn)的,只不過實現(xiàn)起來比較麻煩,所以我這邊直接在監(jiān)聽部分給了一個接口,比較省事。后續(xù)可能也會更方便的方案,之后再討論)。

線程處理也沒什么特別的,把socket和service拿過來,循環(huán)監(jiān)聽,根據(jù)傳過來的唯一設(shè)備號,再把socket捆綁到一起,放到SocketPool里面。


存放好之后,后續(xù)就可以在controller里面直接調(diào)用socket進行交互。

異常直接關(guān)閉連接。
到此這篇關(guān)于Springboot+TCP監(jiān)聽服務(wù)器搭建過程圖解的文章就介紹到這了,更多相關(guān)Springboot+TCP監(jiān)聽服務(wù)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring?Boot的優(yōu)點及項目創(chuàng)建步驟詳解
這篇文章主要介紹了Spring?Boot的優(yōu)點及項目創(chuàng)建步驟,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09
java byte數(shù)組與16進制間相互轉(zhuǎn)換的示例
這篇文章主要介紹了java byte數(shù)組與16進制間相互轉(zhuǎn)換的示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-10-10
java控制臺實現(xiàn)學(xué)生信息管理系統(tǒng)(集合版)
這篇文章主要為大家詳細介紹了java控制臺實現(xiàn)學(xué)生信息管理系統(tǒng)的集合版,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-04-04
Java反射學(xué)習(xí) getClass()函數(shù)應(yīng)用
所謂反射,可以理解為在運行時期獲取對象類型信息的操作,本文將詳細介紹,需要的朋友可以參考下2012-12-12
Java多線程Callable和Future接口區(qū)別
這篇文章主要介紹了Java多線程Callable和Future接口區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04

