一種
健康小屋通信服務器的實現方法,基于netty的TCP和UDP協議服務器端,TCP和UDP協議服務端分別指定不同的端口號;
健康小屋為客戶端,根據IP地址和Port端口號分別連接TCP和UDP協議服務端;
TCP主要程序結構,如下:
實現過程為:

TCP協議服務器端接收客戶端發送的MD5校驗碼,用于身份識別;MD5若校驗不通過,則斷開連接,重新連接校驗,若校驗通過,則TCP協議服務器端發送校驗通過信息;又身份識別的具體過程可為:
健康小屋連接TCP協議服務器后,發送midMD5校驗碼,mid是客戶端唯一編號,服務器通過mid從后臺查找對應的version,即版本號和uid,即唯一用戶編號,并獲取當天的日期,然后以mid+version+uid+date為seed生成MD5值并與
健康小屋發送的MD5校驗碼進行比對,如果對比失敗則回復MD5驗證錯誤的信息,服務器主動斷開
健康小屋的TCP連接;如果比對成功則回復OK信號;其中OK信號可帶有一個時間戳,表示
健康小屋必須在此時間戳內發送體檢數據或日志文件到TCP協議服務器端,否則重新發送校驗請求;
客戶端接收到TCP協議服務器端發送的校驗通過信息后,發送業務數據,業務數據以字節的形式傳輸;業務數據一般包括數據長度、文件類型(H/L)、文件數據,文件類型中H代表體檢數據、L代表日志文件;
TCP協議服務器端接收到業務數據后,進行數據解析,并放入數據庫中,返回給客戶端接收到數據的信息;進行數據解析時,判斷文件類型,并根據不同的數據類型把業務數據放入到不同的數據庫中,
健康小屋發送的文件數據中帶有時間戳,表示文件數據產生的時間,TCP協議服務器端根據時間戳判斷是否重復接收了體檢數據,如果確定重復接收的數據則放棄該數據;如果不是,則解析新接收的數據并入庫,完成業務數據解析入庫后,返回OK信號給
健康小屋;
UDP協議服務器端根據客戶端發送的數據的長度不同判斷是報警信號還是驗證用戶信號;
如果是驗證用戶信號則解析信號數據,根據信號數據查詢數據庫并把查詢到的數據返回給客戶端,過程為:UDP應用層協議可實現驗證用戶ID和發送用戶年齡和性別,用戶利用客戶端輸入auto_id,
健康小屋發送給UDP協議服務器端驗證請求,與TCP協議服務器端相仿,UDP協議服務器端先校驗MD5,驗證通過后uid來查詢后臺并返回信息給
健康小屋,表示此用戶存在,可以進行體檢;否則返回用戶不存在信息,拒絕體檢請求完成驗證。