《 物聯(lián)網(wǎng)集成系統(tǒng)設(shè)計(jì) 》 課件 9服務(wù)器部分_第1頁
《 物聯(lián)網(wǎng)集成系統(tǒng)設(shè)計(jì) 》 課件 9服務(wù)器部分_第2頁
《 物聯(lián)網(wǎng)集成系統(tǒng)設(shè)計(jì) 》 課件 9服務(wù)器部分_第3頁
《 物聯(lián)網(wǎng)集成系統(tǒng)設(shè)計(jì) 》 課件 9服務(wù)器部分_第4頁
《 物聯(lián)網(wǎng)集成系統(tǒng)設(shè)計(jì) 》 課件 9服務(wù)器部分_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

物聯(lián)網(wǎng)應(yīng)用系統(tǒng)設(shè)計(jì)智能家居項(xiàng)目單片機(jī)LED應(yīng)用服務(wù)程序網(wǎng)關(guān)程序運(yùn)程控制LED燈的項(xiàng)目智能家居項(xiàng)目添加標(biāo)題服務(wù)器程序基于服務(wù)器的作用,分析服務(wù)器的功能有:(1)通過TCP協(xié)議接收網(wǎng)關(guān)轉(zhuǎn)發(fā)的LED燈狀態(tài)信息。(2)通過TCP協(xié)議發(fā)送控制信息到網(wǎng)關(guān),經(jīng)網(wǎng)關(guān)轉(zhuǎn)發(fā)下行。(3)能通過瀏覽器輸入,發(fā)送控制信息。(4)能通過瀏覽器查看歷史狀態(tài)信息和控制信息。(5)有數(shù)據(jù)存儲(chǔ)的功能,能保存上傳的LED燈狀態(tài)信息和下發(fā)的控制信息。服務(wù)器功能2通過Java語言操作數(shù)據(jù)庫記錄數(shù)據(jù)通過URL地址發(fā)送、顯示數(shù)據(jù)教學(xué)目標(biāo)實(shí)現(xiàn)服務(wù)器功能1服務(wù)器Socket接收3添加標(biāo)題難點(diǎn)服務(wù)器的接收數(shù)據(jù)記錄到數(shù)據(jù)庫重點(diǎn)Socket接收和發(fā)送Socket接收和發(fā)送服務(wù)器Socket接收和發(fā)送

01網(wǎng)關(guān)作為Socket服務(wù)端連接(1)創(chuàng)建SocketServerServerSocketserverSocket=newServerSocket(1002);(2)accept()等待接收請(qǐng)求(3)創(chuàng)建連接Socket服務(wù)Socketserver=serverSocket.accept();

網(wǎng)關(guān)作為Socket客戶端連接(1)創(chuàng)建Socket服務(wù),請(qǐng)求連接Socketclient=newSocket("192.168.1.136",1002);網(wǎng)關(guān)作為服務(wù)端/客戶端接收數(shù)據(jù)InputStreaminFromServer=client.getInputStream();intn=inFromServer.available(); inFromServer.read(res);網(wǎng)關(guān)作為服務(wù)端/客戶端發(fā)送數(shù)據(jù)OutputStreamoutToServer=client.getOutputStream(); outToServer.write(data.getBytes());服務(wù)器的Socket接收發(fā)送功能

為gs-mysql-service-main這個(gè)實(shí)例增加Scoket客戶端的功能,使它能夠連接網(wǎng)關(guān)上的Scoket服務(wù)端,達(dá)到與之通信的目的。

在工程包中新建一個(gè)java類GreetingClient.java,用于處理Socket的通信問題。通過Java語言操作數(shù)據(jù)庫記錄數(shù)據(jù)02通過java操作數(shù)據(jù)庫java程序操作數(shù)據(jù)庫增、刪、改、查把Socket客戶端接收到的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫。通過java操作數(shù)據(jù)庫

添加一個(gè)實(shí)體類LEDData,它會(huì)在程序連接的數(shù)據(jù)庫中生成一個(gè)數(shù)據(jù)表LEDData,里面有三個(gè)屬性,分別是id、data、datetiem。分別存放記錄id號(hào)、接收到的數(shù)據(jù)、接收數(shù)據(jù)的時(shí)間。UserRepository接口是提供操作LEDData表的方法,代碼如下:通過java操作數(shù)據(jù)庫publicinterfaceUserRepositoryextendsCrudRepository<LEDData,Integer>{

}通過java操作數(shù)據(jù)庫Socket通信接收到數(shù)據(jù)后,使用對(duì)象的setData和setDatetime的方法保存對(duì)象ledData的屬性data和datetime的值,最后使用save方法,把ledData屬性的值保存到數(shù)據(jù)庫表的字段中。接收數(shù)據(jù)并儲(chǔ)存運(yùn)行效果通過URL地址發(fā)送、顯示數(shù)據(jù)03發(fā)送控制信息

在GreetingClient類中DataOutputStreamout是私有屬性,包內(nèi)其它類不能調(diào)用該屬性。要有一個(gè)公有的方法,獲得DataOutputStreamout這一個(gè)輸出流。public

OutputStreamgetOut(){

return

out;

}通過URL地址發(fā)送信息訪問URL地址Socket發(fā)送信息webjava參數(shù)傳遞@RestController注解放到控制器類上。

@GetMapping("/greeting")注解函數(shù)運(yùn)行的請(qǐng)求。@RequestParam注解將請(qǐng)求參數(shù)綁定到控制器的方法參數(shù)上。

@GetMapping("/greeting") publicGreetinggreeting(@RequestParam

Stringname){

returnname; }通過URL地址發(fā)送信息

在MainController這一個(gè)控制器類中編寫一個(gè)函數(shù),使之映射到URL上,通過訪問URL鏈接運(yùn)行函數(shù)。該函數(shù)實(shí)現(xiàn)的功能是,使用客戶端GreetingClient類的輸出流OutputStreamout把URL鏈接中輸入的開關(guān)燈信息發(fā)送到服務(wù)端。

@GetMapping(path="/controlLED")

public

@ResponseBody

StringcontrolLED

(@RequestParam

StringLED){

try

{

greetingClient.getOut().write(LED.getBytes());

return

"發(fā)送成功";

}catch

(IOExceptione){

//TODO

Auto-generatedcatchblock

e.printStackTrace();

}

return

"發(fā)送不成功";

}通過URL地址發(fā)送信息通過URL地址查看記錄

在MainController控制器類中編寫一個(gè)函數(shù),使之映射到URL上。通過瀏覽器輸入U(xiǎn)RL地址,運(yùn)行函數(shù),直接返回?cái)?shù)據(jù)庫的記錄到頁面。編寫函數(shù)前,先在MainController類中使用@Autowired注入LEDDataRepository對(duì)象。@GetMapping(path="/findAll")

public

@ResponseBody

Iterable<LEDData>getAll(){

//ThisreturnsaJSONorXMLwiththeusers

retur

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論