《 物联网集成系统设计 》 课件 9服务器部分_第1页
《 物联网集成系统设计 》 课件 9服务器部分_第2页
《 物联网集成系统设计 》 课件 9服务器部分_第3页
《 物联网集成系统设计 》 课件 9服务器部分_第4页
《 物联网集成系统设计 》 课件 9服务器部分_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

物联网应用系统设计智能家居项目单片机LED应用服务程序网关程序运程控制LED灯的项目智能家居项目添加标题服务器程序基于服务器的作用,分析服务器的功能有:(1)通过TCP协议接收网关转发的LED灯状态信息。(2)通过TCP协议发送控制信息到网关,经网关转发下行。(3)能通过浏览器输入,发送控制信息。(4)能通过浏览器查看历史状态信息和控制信息。(5)有数据存储的功能,能保存上传的LED灯状态信息和下发的控制信息。服务器功能2通过Java语言操作数据库记录数据通过URL地址发送、显示数据教学目标实现服务器功能1服务器Socket接收3添加标题难点服务器的接收数据记录到数据库重点Socket接收和发送Socket接收和发送服务器Socket接收和发送

01网关作为Socket服务端连接(1)创建SocketServerServerSocketserverSocket=newServerSocket(1002);(2)accept()等待接收请求(3)创建连接Socket服务Socketserver=serverSocket.accept();

网关作为Socket客户端连接(1)创建Socket服务,请求连接Socketclient=newSocket("192.168.1.136",1002);网关作为服务端/客户端接收数据InputStreaminFromServer=client.getInputStream();intn=inFromServer.available(); inFromServer.read(res);网关作为服务端/客户端发送数据OutputStreamoutToServer=client.getOutputStream(); outToServer.write(data.getBytes());服务器的Socket接收发送功能

为gs-mysql-service-main这个实例增加Scoket客户端的功能,使它能够连接网关上的Scoket服务端,达到与之通信的目的。

在工程包中新建一个java类GreetingClient.java,用于处理Socket的通信问题。通过Java语言操作数据库记录数据02通过java操作数据库java程序操作数据库增、删、改、查把Socket客户端接收到的数据存储到数据库。通过java操作数据库

添加一个实体类LEDData,它会在程序连接的数据库中生成一个数据表LEDData,里面有三个属性,分别是id、data、datetiem。分别存放记录id号、接收到的数据、接收数据的时间。UserRepository接口是提供操作LEDData表的方法,代码如下:通过java操作数据库publicinterfaceUserRepositoryextendsCrudRepository<LEDData,Integer>{

}通过java操作数据库Socket通信接收到数据后,使用对象的setData和setDatetime的方法保存对象ledData的属性data和datetime的值,最后使用save方法,把ledData属性的值保存到数据库表的字段中。接收数据并储存运行效果通过URL地址发送、显示数据03发送控制信息

在GreetingClient类中DataOutputStreamout是私有属性,包内其它类不能调用该属性。要有一个公有的方法,获得DataOutputStreamout这一个输出流。public

OutputStreamgetOut(){

return

out;

}通过URL地址发送信息访问URL地址Socket发送信息webjava参数传递@RestController注解放到控制器类上。

@GetMapping("/greeting")注解函数运行的请求。@RequestParam注解将请求参数绑定到控制器的方法参数上。

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

Stringname){

returnname; }通过URL地址发送信息

在MainController这一个控制器类中编写一个函数,使之映射到URL上,通过访问URL链接运行函数。该函数实现的功能是,使用客户端GreetingClient类的输出流OutputStreamout把URL链接中输入的开关灯信息发送到服务端。

@GetMapping(path="/controlLED")

public

@ResponseBody

StringcontrolLED

(@RequestParam

StringLED){

try

{

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

return

"发送成功";

}catch

(IOExceptione){

//TODO

Auto-generatedcatchblock

e.printStackTrace();

}

return

"发送不成功";

}通过URL地址发送信息通过URL地址查看记录

在MainController控制器类中编写一个函数,使之映射到URL上。通过浏览器输入URL地址,运行函数,直接返回数据库的记录到页面。编写函数前,先在MainController类中使用@Autowired注入LEDDataRepository对象。@GetMapping(path="/findAll")

public

@ResponseBody

Iterable<LEDData>getAll(){

//ThisreturnsaJSONorXMLwiththeusers

retur

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论